This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ipa/65028] [5 Regression] 450.soplex in SPEC CPU 2006 is miscompiled


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65028

--- Comment #37 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Jan Hubicka from comment #36)
> Hi,
> I do not really see the reason for wrong code, but the merging logic seems
> weird for me.  There is no merging done when we get two different alignments
> and also we seem to immediately drop lattice to bottom when the incomming
> parameter alignment has no .known bit set.  This means we do pesimistic
> propagation.
> 
> I..e in testcase
> 
> void *b;
> __attribute__ ((noinline))
> static void a (void *a)
> {
>   memcpy (a,b,1000000);
> }
> static void aa (void *a) __attribute__ ((alias("a")));
> 
> tt(void)
> {
>   int i[10000];
>   short c;
> 
>   aa(&c);
>   a(i);
> }
> 
> We end up with algnment unkonwn instead of a. (did not managed to reproduce
> the wrong alignment here).  What about the following:

Can you upload the patch as an attachment so that I can try it on x32? Thanks.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]