GCC Middle and Back End API Reference
|
ACCESS represents each access to an aggregate variable (as a whole or a part). It can also represent a group of accesses that refer to exactly the same fragment of an aggregate (i.e. those that have exactly the same offset and size). Such representatives for a single aggregate, once determined, are linked in a linked list and have the group fields set. Moreover, when doing intraprocedural SRA, a tree is built from those representatives (by the means of first_child and next_sibling pointers), in which all items in a subtree are "within" the root, i.e. their offset is greater or equal to offset of the root and offset+size is smaller or equal to offset+size of the root. Children of an access are sorted by offset. Note that accesses to parts of vector and complex number types always represented by an access to the whole complex number or a vector. It is a duty of the modifying functions to replace them appropriately.
tree access::base |
Referenced by analyze_access_subtree(), build_access_from_call_arg(), build_access_from_expr(), build_access_from_expr_1(), build_accesses_from_assign(), comes_initialized_p(), create_access(), create_access_1(), create_access_replacement(), create_artificial_child_access(), create_total_scalarization_access(), dump_access(), get_access_for_expr(), get_base_access_vector(), get_first_repr_for_decl(), get_var_base_offset_size_access(), handle_unscalarized_data_in_subtree(), load_assign_lhs_subreplacements(), propagate_all_subaccesses(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), sra_modify_assign(), sra_modify_call_arg(), sra_modify_expr(), verify_all_sra_access_forests(), and verify_sra_access_forest().
tree access::expr |
Referenced by analyze_access_subtree(), build_debug_ref_for_model(), build_reconstructed_reference(), build_ref_for_model(), create_access(), create_access_replacement(), create_artificial_child_access(), create_total_scalarization_access(), dump_access(), initialize_constant_pool_replacements(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), totally_scalarize_subtree(), and verify_sra_access_forest().
struct access* access::first_child |
Referenced by access_has_children_p(), access_has_replacements_p(), access_or_its_child_written(), analyze_access_subtree(), build_access_subtree(), can_totally_scalarize_forest_p(), child_would_conflict_in_acc(), clobber_subtree(), create_artificial_child_access(), create_total_access_and_reshape(), dump_access_tree_1(), find_access_in_subtree(), generate_subtree_copies(), generate_subtree_deferred_init(), handle_unscalarized_data_in_subtree(), init_subtree_with_zero(), initialize_constant_pool_replacements(), load_assign_lhs_subreplacements(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sra_modify_assign(), sra_modify_constructor_assign(), sra_modify_deferred_init(), sra_modify_expr(), subtree_mark_written_and_rhs_enqueue(), total_should_skip_creating_access(), totally_scalarize_subtree(), and verify_sra_access_forest().
struct assign_link* access::first_lhs_link |
Referenced by add_access_to_lhs_work_queue(), add_link_to_lhs(), propagate_all_subaccesses(), and relink_to_new_repr().
struct assign_link* access::first_rhs_link |
Referenced by add_access_to_rhs_work_queue(), add_link_to_rhs(), propagate_all_subaccesses(), and relink_to_new_repr().
struct access* access::group_representative |
Referenced by propagate_all_subaccesses(), and sort_and_splice_var_accesses().
unsigned access::grp_assignment_read |
Referenced by analyze_access_subtree(), build_accesses_from_assign(), dump_access(), and sort_and_splice_var_accesses().
unsigned access::grp_assignment_write |
Referenced by analyze_access_subtree(), build_accesses_from_assign(), dump_access(), and sort_and_splice_var_accesses().
unsigned access::grp_covered |
unsigned access::grp_hint |
unsigned access::grp_lhs_queued |
Referenced by add_access_to_lhs_work_queue(), and pop_access_from_lhs_work_queue().
unsigned access::grp_no_warning |
Referenced by create_access_replacement(), create_artificial_child_access(), and propagate_subaccesses_from_rhs().
unsigned access::grp_partial_lhs |
unsigned access::grp_read |
unsigned access::grp_result_of_prop_from_lhs |
Referenced by analyze_access_subtree(), and propagate_subaccesses_from_lhs().
unsigned access::grp_rhs_queued |
Referenced by add_access_to_rhs_work_queue(), and pop_access_from_rhs_work_queue().
unsigned access::grp_same_access_path |
unsigned access::grp_scalar_read |
Referenced by analyze_access_subtree(), dump_access(), and sort_and_splice_var_accesses().
unsigned access::grp_scalar_write |
Referenced by analyze_access_subtree(), dump_access(), and sort_and_splice_var_accesses().
unsigned access::grp_to_be_debug_replaced |
unsigned access::grp_to_be_replaced |
Referenced by access_has_replacements_p(), analyze_access_subtree(), clobber_subtree(), dump_access(), generate_subtree_copies(), generate_subtree_deferred_init(), get_repl_default_def_ssa_name(), init_subtree_with_zero(), load_assign_lhs_subreplacements(), sra_modify_assign(), sra_modify_deferred_init(), and sra_modify_expr().
unsigned access::grp_total_scalarization |
unsigned access::grp_unscalarizable_region |
Referenced by analyze_access_subtree(), build_accesses_from_assign(), can_totally_scalarize_forest_p(), create_access(), create_artificial_child_access(), dump_access(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), sra_modify_assign(), totally_scalarize_subtree(), and verify_sra_access_forest().
unsigned access::grp_unscalarized_data |
Referenced by analyze_access_subtree(), dump_access(), handle_unscalarized_data_in_subtree(), and sra_modify_assign().
unsigned access::grp_write |
Referenced by access_or_its_child_written(), analyze_access_subtree(), build_access_subtree(), create_artificial_child_access(), create_total_scalarization_access(), dump_access(), load_assign_lhs_subreplacements(), propagate_all_subaccesses(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), and subtree_mark_written_and_rhs_enqueue().
struct assign_link * access::last_lhs_link |
Referenced by add_link_to_lhs(), and relink_to_new_repr().
struct assign_link * access::last_rhs_link |
Referenced by add_link_to_rhs(), and relink_to_new_repr().
struct access* access::next_grp |
Referenced by analyze_access_trees(), analyze_all_variable_accesses(), build_access_subtree(), build_access_trees(), can_totally_scalarize_forest_p(), dump_access_tree(), get_var_base_offset_size_access(), initialize_constant_pool_replacements(), initialize_parameter_reductions(), sort_and_splice_var_accesses(), and verify_sra_access_forest().
struct access * access::next_lhs_queued |
Referenced by add_access_to_lhs_work_queue(), and pop_access_from_lhs_work_queue().
struct access* access::next_rhs_queued |
Referenced by add_access_to_rhs_work_queue(), and pop_access_from_rhs_work_queue().
struct access* access::next_sibling |
Referenced by access_has_replacements_p(), analyze_access_subtree(), build_access_subtree(), can_totally_scalarize_forest_p(), child_would_conflict_in_acc(), clobber_subtree(), create_artificial_child_access(), create_total_access_and_reshape(), create_total_scalarization_access(), dump_access_tree_1(), find_access_in_subtree(), generate_subtree_copies(), generate_subtree_deferred_init(), init_subtree_with_zero(), initialize_constant_pool_replacements(), load_assign_lhs_subreplacements(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), subtree_mark_written_and_rhs_enqueue(), total_should_skip_creating_access(), totally_scalarize_subtree(), and verify_sra_access_forest().
HOST_WIDE_INT access::offset |
Referenced by analyze_access_subtree(), build_access_subtree(), build_ref_for_model(), can_totally_scalarize_forest_p(), child_would_conflict_in_acc(), compare_access_positions(), create_access_1(), create_access_replacement(), create_artificial_child_access(), create_total_access_and_reshape(), create_total_scalarization_access(), dump_access(), find_access_in_subtree(), generate_subtree_copies(), get_var_base_offset_size_access(), handle_unscalarized_data_in_subtree(), load_assign_lhs_subreplacements(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), sra_modify_assign(), sra_modify_constructor_assign(), sra_modify_expr(), total_should_skip_creating_access(), totally_scalarize_subtree(), pair_fusion_bb_info::transform_for_base(), and verify_sra_access_forest().
struct access* access::parent |
Referenced by analyze_access_subtree(), build_access_subtree(), can_totally_scalarize_forest_p(), create_artificial_child_access(), create_total_access_and_reshape(), create_total_scalarization_access(), initialize_constant_pool_replacements(), propagate_all_subaccesses(), total_should_skip_creating_access(), and verify_sra_access_forest().
tree access::replacement_decl |
unsigned access::reverse |
HOST_WIDE_INT access::size |
Referenced by analyze_access_subtree(), build_access_subtree(), build_accesses_from_assign(), can_totally_scalarize_forest_p(), child_would_conflict_in_acc(), create_access(), create_access_1(), create_access_replacement(), create_artificial_child_access(), create_total_access_and_reshape(), create_total_scalarization_access(), dump_access(), find_access_in_subtree(), generate_subtree_copies(), get_var_base_offset_size_access(), load_assign_lhs_subreplacements(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), total_should_skip_creating_access(), totally_scalarize_subtree(), and verify_sra_access_forest().
gimple* access::stmt |
Referenced by abnormal_edge_after_stmt_p(), build_access_from_call_arg(), build_access_from_expr(), build_access_from_expr_1(), build_accesses_from_assign(), clobber_subtree(), create_access(), disqualify_if_bad_bb_terminating_stmt(), generate_subtree_copies(), init_subtree_with_zero(), initialize_constant_pool_replacements(), load_assign_lhs_subreplacements(), sra_modify_assign(), sra_modify_call_arg(), sra_modify_constructor_assign(), sra_modify_deferred_init(), sra_modify_expr(), and sra_modify_function_body().
tree access::type |
Referenced by analyze_access_subtree(), analyze_all_variable_accesses(), build_accesses_from_assign(), build_debug_ref_for_model(), build_ref_for_model(), can_totally_scalarize_forest_p(), clobber_subtree(), create_access(), create_access_replacement(), create_artificial_child_access(), create_total_scalarization_access(), dump_access(), init_subtree_with_zero(), load_assign_lhs_subreplacements(), propagate_subaccesses_from_lhs(), propagate_subaccesses_from_rhs(), sort_and_splice_var_accesses(), sra_modify_expr(), total_should_skip_creating_access(), totally_scalarize_subtree(), and verify_sra_access_forest().
unsigned access::write |