On May 3, 2017 6:46:05 PM GMT+02:00, Jakub Jelinek <ja...@redhat.com> wrote:
>On Wed, May 03, 2017 at 06:44:46PM +0200, Richard Biener wrote:
>> On May 3, 2017 6:22:14 PM GMT+02:00, Jakub Jelinek <ja...@redhat.com>
>wrote:
>> >On Wed, May 03, 2017 at 06:18:08PM +0200, Jan Hubicka wrote:
>> >> Hi,
>> >> my change to sreals makes GCC to be miscompiled with GCC 4.1 and
>-O0.
>> > This is
>> >> related to fact that using sreal implies a non-trivial constructor
>> >and thus
>> >> ggc_cleared_alloc is no longer standard compliant.  I however do
>not
>> >quite understand
>> >> why GCC 4.1 manages to misoptimize this code but I have checked
>that
>> >this helps
>> >> to fix the issue and hopefully will re-start our periodic testers.
>> >
>> >Is store-merging pass able to optimize that back into reasonable
>code
>> >(sure, not into ggc_cleared_alloc)?
>> 
>> Whether it is or not, the previous code was buggy.  The zeroing does
>not
>> prevail until after the object construction begins (not sure whether
>for
>> PODs this would be different).
>
>Sure, I'm not questioning the patch, just wondering if we shouldn't
>improve
>store-merging further (we want to do it anyway for e.g. bitop adjacent
>operations etc.).

We definitely want to do that.  It should also 'nicely' merge with bswap for 
gathering the load side of a piecewise memory to memory copy.

Richard.

>
>       Jakub

Reply via email to