[Bug tree-optimization/59501] [4.9 Regression] Vector Gather with GCC 4.9 2013-12-08 Snapshot

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 19 18:09:00 GMT 2013


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-19
                 CC|                            |hjl at gcc dot gnu.org,
                   |                            |hubicka at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This regressed with r203171.  Before that change, -maccumulate-outgoing-args
was true, but now it isn't.  The changes I see in the RTL dumps is that there
is a (dead) load from r10 register into a pseudo from expand to jump pass, then
the RTL is pretty much the same (different insn numbers) until
pro_and_epilogue, which creates all the garbage.
The reason why the load from r10 is created and supposedly for the different
pro_and_epilogue behavior is ix86_get_drap_rtx:
  if (ix86_force_drap || !ACCUMULATE_OUTGOING_ARGS)
    crtl->need_drap = true;
But in the function in question, LRA has not spilled anything to the stack, the
stack actually isn't used at all, and neither is the drap reg live at the start
of the function (that would be another reason why we'd need to emit some
setting of the drap reg, but probably wouldn't need to dynamically realign the
stack).



More information about the Gcc-bugs mailing list