This is the rest of the implementation.

        * asan.c (instrument_derefs): Adjust call to get_inner_reference.
        * builtins.c (get_object_alignment_2): Likewise.
        * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
        and get_ref_base_and_extent.
        * dbxout.c (dbxout_expand_expr): Likewise.
        * dwarf2out.c (add_var_loc_to_decl): Likewise.
        (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
        (loc_list_from_tree): Likewise.
        (fortran_common): Likewise.
        * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
        get_ref_base_and_extent.
        (get_base_constructor): Likewise.
        (fold_const_aggregate_ref_1): Likewise.
        * gimple-laddress.c (pass_laddress::execute): Adjust call to
        get_inner_reference.
        * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
        get_inner_reference and bail out on reverse storage order.
        * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
        * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
        build_ref_for_offset.
        * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
        get_ref_base_and_extent.
        (ipa_polymorphic_call_context): Likewise.
        (extr_type_from_vtbl_ptr_store): Likewise.
        (check_stmt_for_type_change): Likewise.
        (get_dynamic_type): Likewise.
        * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
        get_ref_base_and_extent.
        (compute_complex_assign_jump_func): Likewise.
        (get_ancestor_addr_info): Likewise.
        (compute_known_type_jump_func): Likewise.
        (determine_known_aggregate_parts): Likewise.
        (ipa_get_adjustment_candidate): Likewise.
        (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on
        MEM_REF.
        * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
        (build_ref_for_offset): Adjust prototype.
        * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
        get_inner_reference.
        * tree-affine.c (tree_to_aff_combination): Adjust call to
        get_inner_reference.
        (get_inner_reference_aff): Likewise.
        * tree-data-ref.c (split_constant_offset_1): Likewise.
        (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
        * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
        get_inner_reference.
        * tree-sra.c (struct access): Add REVERSE and move WRITE around.
        (dump_access): Print new fields.
        (create_access): Adjust call to get_ref_base_and_extent and set the
        REVERSE flag according to the result.
        (completely_scalarize_record): Set the REVERSE flag.
        (scalarize_elem): Add REVERSE parameter.
        (build_access_from_expr_1): Preserve storage order barriers.
        (build_accesses_from_assign): Likewise.
        (build_ref_for_offset): Add REVERSE parameter and set the
        REF_REVERSE_STORAGE_ORDER flag accordingly.
        (build_ref_for_model): Adjust call to build_ref_for_offset and clear
        the REF_REVERSE_STORAGE_ORDER flag if there are components.
        (analyze_access_subtree): Likewise.
        (create_artificial_child_access): Set the REVERSE flag.
        (get_access_for_expr): Adjust call to get_ref_base_and_extent.
        (turn_representatives_into_adjustments): Propagate REVERSE flag.
        (ipa_sra_check_caller): Adjust call to get_inner_reference.
        * tree-ssa-alias.c (ao_ref_base): Adjust call to
        get_ref_base_and_extent.
        (aliasing_component_refs_p): Likewise.
        (stmt_kills_ref_p_1): Likewise.
        * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
        Return true if reverse storage order.
        <BIT_FIELD_REF>: Likewise.
        <COMPONENT_REF>: Likewise.
        <ARRAY_REF>: Likewise.
        <ARRAY_RANGE_REF>: Likewise.
        (split_address_cost): Likewise.  Bail out if reverse storage order.
        * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
        get_inner_reference.  Bail out if reverse storage order.
        (bswap_replace): Adjust call to get_inner_reference.
        * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
        the REF_REVERSE_STORAGE_ORDER flag.
        <BIT_FIELD_REF>: Likewise.
        * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
        barriers.
        (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
        to the REF_REVERSE_STORAGE_ORDER flag.
        <BIT_FIELD_REF>: Likewise.
        <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
        (contains_storage_order_barrier_p): New predicate.
        (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
        Punt on storage order barriers if necessary.
        * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
        * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
        call to get_ref_base_and_extent.
        (do_structure_copy): Likewise.
        * tree-vect-data-refs.c (vect_check_gather): Adjust call to
        get_inner_reference.
        (vect_analyze_data_refs): Likewise.  Bail out if reverse storage
        order.
        * tsan.c (instrument_expr): Adjust call to get_inner_reference.
        * ubsan.c (instrument_bool_enum_load): Likewise.
        (instrument_object_size): Likewise.
        * var-tracking.c (track_expr_p): Adjust call to
        get_ref_base_and_extent
        * config/arm/arm.c (arm_assemble_integer): Adjust call to
        assemble_real
        * config/arm/arm.md (consttable_4): Likewise.
        (consttable_8): Likewise.
        (consttable_16): Likewise.
        * config/mips/mips.md (consttable_float): Likewise.
        * config/s390/s390.c (s390_output_pool_entry): Likewise.
        * config/sh/sh.md (consttable_sf): Likewise.
        (consttable_df): Likewise.

 asan.c                          |    6 +-
 builtins.c                      |    6 +-
 cfgexpand.c                     |   12 +++--
 dbxout.c                        |    6 +-
 dwarf2out.c                     |   21 +++++-----
 gimple-fold.c                   |   13 ++++--
 gimple-laddress.c               |    4 -
 gimple-ssa-strength-reduction.c |    6 +-
 ifcvt.c                         |    4 -
 ipa-cp.c                        |    2 
 ipa-polymorphic-call.c          |   23 +++++++----
 ipa-prop.c                      |   30 ++++++++++----
 ipa-prop.h                      |    6 ++
 simplify-rtx.c                  |    7 +--
 tree-affine.c                   |   10 ++--
 tree-data-ref.c                 |   20 ++++++---
 tree-scalar-evolution.c         |    7 +--
 tree-sra.c                      |   83 +++++++++++++++++++++++---------------
 tree-ssa-alias.c                |   18 +++++---
 tree-ssa-dce.c                  |    4 +
 tree-ssa-loop-ivopts.c          |   27 +++++++++----
 tree-ssa-math-opts.c            |   10 ++--
 tree-ssa-pre.c                  |    5 +-
 tree-ssa-sccvn.c                |   61 +++++++++++++++++++++++++----
 tree-ssa-sccvn.h                |    1 
 tree-ssa-structalias.c          |   10 +++-
 tree-vect-data-refs.c           |   21 +++++++---
 tsan.c                          |    6 +-
 ubsan.c                         |    8 +--
 var-tracking.c                  |    3 -
 config/arm/arm.c                |    2 
 config/arm/arm.md               |    6 +-
 config/mips/mips.md             |    2 
 config/s390/s390.c              |    2 
 config/sh/sh.md                 |    4 -

 35 files changed, 304 insertions(+), 152 deletions(-)

-- 
Eric Botcazou

Reply via email to