On 10/06/2015 05:05 AM, Eric Botcazou wrote:
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.
This is fine.

jeff

Reply via email to