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.
patch-inner-reference.diff
Description: Binary data