This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][GCC7] Remove scaling of COMPONENT_REF/ARRAY_REF ops 2/3
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 03 May 2016 10:39:10 +0200
- Subject: Re: [PATCH][GCC7] Remove scaling of COMPONENT_REF/ARRAY_REF ops 2/3
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1602181335560 dot 1392 at t29 dot fhfr dot qr> <3564626 dot L9kKSTKFH1 at polaris> <alpine dot LSU dot 2 dot 11 dot 1605021121510 dot 13384 at t29 dot fhfr dot qr>
> It seems to me that the issue in the end is that where we compute
> alignment from is the pieces gathered by get_inner_reference
> instead of computing it alongside of that information in
> get_inner_reference, taking advantage of DECL_OFFSET_ALIGN
> and the array element type alignment there. This would be
> another opportunity to merge get_inner_reference and
> get_object_alignment_2 (or have a common worker).
Yes, the problem is the way we extract the alignment information in the RTL
expander by means of get_inner_reference.
> Do I understand you correctly that without using -fno-tree-ccp there
> are currently no regressions? What about -O0 then? The code
> generated by -O0 on x86_64 currently is quite horrible of course,
> so maybe we don't care too much... I think -Og disables CCPs
> bit-tracking though.
There are no regressions at -O, at least in simple cases. Of course -O0 is
also pessimized because CCP bit-tracking isn't enabled at -O0.
--
Eric Botcazou