Hi,

On Wed, 27 Nov 2013 12:47:19, Richard Biener wrote:
>
> On Wed, Nov 27, 2013 at 10:43 AM, Eric Botcazou <ebotca...@adacore.com> wrote:
>>> I think you are right, this flag is no longer necessary, and removing
>>> this code path would simplify everything. Therefore I'd like to propose
>>> to remove the "keep_aligning" parameter of get_inner_reference as
>>> a split-out patch.
>>>
>>> Boot-strapped (with languages=all,ada,go) and
>>> regression-tested on x86_64-linux-gnu.
>>
>> I don't understand how you can commit a patch that changes something only on
>> strict-alignment platforms and test it only on x86-64. This change *must* be
>> tested with Ada on a strict-alignment platform, that's the only combination
>> for which it is exercised. If you cannot do that, then please back it out.
>>
>> More generally speaking, it's not acceptable to make cleanup changes like 
>> that
>> in the RTL expander without extreme care, which of course starts with proper
>> testing. The patch should not have been approved either for that reason.
>
> I'm fine with reverting it for now (you were in CC of the patch submission
> but silent on it, I asked for the patch to start simplifying the way
> mems are expanded - ultimately to avoid the recursion and mem-attribute
> compute by the recursion).
>
> We can come back during stage1.
>

Well, it's stage1 again.

I still have that already-approved patch, updated to current trunk.
I've successfully boot-strapped it on armv7-linux-gnueabihf with
all languages enabled, including Ada.
The test suite runs cleanly without any drop-outs.

Is it OK to commit now, or are there objections?


Thanks
Bernd.

> get_object_alignment should be able to properly handle this case
> if you call it on the full reference in the normal_inner_ref: case.
> All the weird duplicate code on the VIEW_CONVERT_EXPR case
> should IMHO go.
>
> Richard.
>
>> --
>> Eric Botcazou


                                          
2014-04-16  Bernd Edlinger  <bernd.edlin...@hotmail.de>

        Remove parameter keep_aligning from get_inner_reference.
        * tree.h (get_inner_reference): Adjust header.
        * expr.c (get_inner_reference): Remove parameter keep_aligning.
        (get_bit_range, expand_assignment,
        expand_expr_addr_expr_1, expand_expr_real_1): Adjust.
        * asan.c (instrument_derefs): Adjust.
        * builtins.c (get_object_alignment_2): Adjust. Remove handling of
        VIEW_CONVERT_EXPR.
        * cfgexpand.c (expand_debug_expr): Adjust.
        * dbxout.c (dbxout_expand_expr): Adjust.
        * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
        loc_list_from_tree, fortran_common): Adjust.
        * fold-const.c (optimize_bit_field_compare,
        decode_field_reference, fold_unary_loc, fold_comparison,
        split_address_to_core_and_offset): Adjust.
        * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust.
        * simplifx-rtx.c (delegitimize_mem_from_attrs): Adjust.
        * tree-affine.c (tree_to_aff_combination,
        get_inner_reference_aff): Adjust.
        * tree-data-ref.c (split_constant_offset_1,
        dr_analyze_innermost): Adjust.
        * tree-vect-data-refs.c (vect_check_gather,
        vect_analyze_data_refs): Adjust.
        * tree-scalar-evolution.c (interpret_rhs_expr): Adjust.
        * tree-ssa-loop-ivopts.c ( split_address_cost): Adjust.
        * tsan.c (instrument_expr): Adjust.
        * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust.

ada:
2014-04-16  Bernd Edlinger  <bernd.edlin...@hotmail.de>

        Remove parameter keep_aligning from get_inner_reference.
        * gcc-interface/decl.c (elaborate_expression_1): Adjust.
        * gcc-interface/trans.c (Attribute_to_gnu): Adjust.
        * gcc-interface/utils2.c (build_unary_op): Adjust.

Attachment: patch-inner-reference.diff
Description: Binary data

Reply via email to