Home | History | Annotate | Download | only in gcc

Lines Matching defs:racc

281   struct access *lacc, *racc;
558 /* Add LINK to the linked list of assign links of RACC. */
561 add_link_to_rhs (struct access *racc, struct assign_link *link)
563 gcc_assert (link->racc == racc);
565 if (!racc->first_rhs_link)
567 gcc_assert (!racc->last_rhs_link);
568 racc->first_rhs_link = link;
571 racc->last_rhs_link->next_rhs = link;
573 racc->last_rhs_link = link;
1269 struct access *lacc, *racc;
1282 racc = build_access_from_expr_1 (rhs, stmt, false);
1301 if (racc)
1303 racc->grp_assignment_read = 1;
1304 if (should_scalarize_away_bitmap && !is_gimple_reg_type (racc->type))
1311 DECL_UID (racc->base));
1314 DECL_UID (racc->base));
1317 racc->grp_unscalarizable_region = 1;
1320 if (lacc && racc
1323 && !racc->grp_unscalarizable_region
1325 && lacc->size == racc->size
1326 && useless_type_conversion_p (lacc->type, racc->type))
1334 link->racc = racc;
1335 add_link_to_rhs (racc, link);
1337 add_access_to_rhs_work_queue (racc);
1343 if (!comes_initialized_p (racc->base))
1347 return lacc || racc;
2800 /* Propagate subaccesses and grp_write flags of RACC across an assignment link
2803 RACC is a scalar access but LACC is not, change the type of the latter, if
2807 propagate_subaccesses_from_rhs (struct access *lacc, struct access *racc)
2810 HOST_WIDE_INT norm_delta = lacc->offset - racc->offset;
2817 gcc_checking_assert (!comes_initialized_p (racc->base));
2818 if (racc->grp_write)
2827 || racc->grp_unscalarizable_region)
2837 if (is_gimple_reg_type (racc->type))
2844 if (!lacc->first_child && !racc->first_child)
2850 && !POINTER_TYPE_P (racc->type)
2851 && !VECTOR_TYPE_P (racc->type);
2854 lacc->type = racc->type;
2856 lacc->offset, racc->type))
2865 racc, NULL, false);
2876 for (rchild = racc->first_child; rchild; rchild = rchild->next_sibling)
2937 if (racc->first_child)
2947 /* Propagate subaccesses of LACC across an assignment link to RACC if they
2952 propagate_subaccesses_from_lhs (struct access *lacc, struct access *racc)
2954 if (is_gimple_reg_type (racc->type)
2956 || racc->grp_unscalarizable_region)
2959 /* TODO: Do we want set some new racc flag to stop potential total
2964 HOST_WIDE_INT norm_delta = racc->offset - lacc->offset;
2973 || child_would_conflict_in_acc (racc, norm_offset, lchild->size,
2975 || !budget_for_propagation_access (racc->base))
2987 if (!types_compatible_p (racc->type, lchild->type))
2990 = create_artificial_child_access (racc, lchild, norm_offset,
2996 propagate_subaccesses_from_lhs (lchild, racc);
3010 struct access *racc = pop_access_from_rhs_work_queue ();
3013 if (racc->group_representative)
3014 racc= racc->group_representative;
3015 gcc_assert (racc->first_rhs_link);
3017 for (link = racc->first_rhs_link; link; link = link->next_rhs)
3026 if (!bitmap_bit_p (candidate_bitmap, DECL_UID (racc->base)))
3034 else if (propagate_subaccesses_from_rhs (lacc, racc))
3061 struct access *racc = link->racc;
3063 if (racc->group_representative)
3064 racc = racc->group_representative;
3065 if (!bitmap_bit_p (candidate_bitmap, DECL_UID (racc->base)))
3067 if (propagate_subaccesses_from_lhs (lacc, racc))
3068 add_access_to_lhs_work_queue (racc);
4016 struct access *racc;
4020 racc = find_access_in_subtree (sad->top_racc, offset, lacc->size);
4021 if (racc && racc->grp_to_be_replaced)
4023 rhs = get_access_replacement (racc);
4024 if (!useless_type_conversion_p (lacc->type, racc->type))
4028 if (racc->grp_partial_lhs && lacc->grp_partial_lhs)
4069 struct access *racc = find_access_in_subtree (sad->top_racc,
4073 if (racc && racc->grp_to_be_replaced)
4075 if (racc->grp_write || constant_decl_p (racc->base))
4076 drhs = get_access_replacement (racc);
4163 /* Create and return a new suitable default definition SSA_NAME for RACC which
4165 loaded. REG_TREE is used instead of the actual RACC type if that is not of
4169 get_repl_default_def_ssa_name (struct access *racc, tree reg_type)
4171 gcc_checking_assert (!racc->grp_to_be_replaced
4172 && !racc->grp_to_be_debug_replaced);
4173 if (!racc->replacement_decl)
4174 racc->replacement_decl = create_access_replacement (racc, reg_type);
4175 return get_or_create_ssa_default_def (cfun, racc->replacement_decl);
4269 struct access *lacc, *racc;
4296 racc = get_access_for_expr (rhs);
4297 if (!lacc && !racc)
4300 if (racc && (racc->replacement_decl == lhs))
4314 if (racc && racc->grp_to_be_replaced)
4316 rhs = get_access_replacement (racc);
4318 if (racc->grp_partial_lhs)
4322 else if (racc
4323 && !racc->grp_unscalarized_data
4324 && !racc->grp_unscalarizable_region
4326 && !access_has_replacements_p (racc))
4328 rhs = get_repl_default_def_ssa_name (racc, TREE_TYPE (lhs));
4340 && TYPE_REVERSE_STORAGE_ORDER (TREE_TYPE (lhs)) == racc->reverse
4343 lhs = build_ref_for_model (loc, lhs, 0, racc, gsi, false);
4420 if (access_has_children_p (racc) && !TREE_READONLY (racc->base))
4421 generate_subtree_copies (racc->first_child, rhs, racc->offset, 0, 0,
4454 && access_has_children_p (racc)
4459 && !racc->grp_unscalarizable_region)
4466 sad.top_racc = racc;
4488 if (access_has_children_p (racc)
4489 && !racc->grp_unscalarized_data
4497 generate_subtree_copies (racc->first_child, lhs,
4498 racc->offset, 0, 0, gsi,
4509 if (access_has_children_p (racc) && !TREE_READONLY (racc->base))
4510 generate_subtree_copies (racc->first_child, rhs, racc->offset, 0, 0,