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 rtl-optimization/57003] [4.8/4.9 Regression] gcc-4.8.0 breaks -O2 optimization with Wine(64) - links/info/bisect of commits included


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57003

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
          Component|middle-end                  |rtl-optimization
   Target Milestone|---                         |4.8.1
            Summary|gcc-4.8.0 breaks -O2        |[4.8/4.9 Regression]
                   |optimization with Wine(64)  |gcc-4.8.0 breaks -O2
                   |- links/info/bisect of      |optimization with Wine(64)
                   |commits included            |- links/info/bisect of
                   |                            |commits included

--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-24 16:50:21 UTC ---
Ah, ok, I can see it.  To look at 22354 it helps to sed -i 's/^# .*$//', then
look for 22354 in the dump.  Seems the code is still correct at *.ce3 pass,
Bernd's optimization kicks in during RA time before that and the pseudo holding
buffer is assigned to %rdi before the call memcpy and assumed to live in %rax
right after the call.  But cprop_hardreg breaks this, changes the %rax after
the memcpy call into %rdi, even when %rdi is call clobbered register, and even
the call pattern contains (clobber (reg:DI 5 di)) and REG_DEAD note for the
same register.


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