[Bug rtl-optimization/48156] [4.6/4.7 Regression] wrong code with -fcrossjumping

steven at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 17 00:58:00 GMT 2011


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

--- Comment #1 from Steven Bosscher <steven at gcc dot gnu.org> 2011-03-17 00:24:52 UTC ---
Cross-jumping changes this:

   24 NOTE_INSN_BASIC_BLOCK
   25 si:SI=bx:SI
      REG_DEAD: bx:SI
   26 di:SI=0x8
   27 call <...>
      REG_DEAD: di:SI
      REG_DEAD: si:SI
      REG_EH_REGION: 0
   48 pc=L37
i  49: barrier
L30:  
   31 NOTE_INSN_BASIC_BLOCK
   32 si:SI=bx:SI
      REG_DEAD: bx:SI
   33 di:SI=0x4 
   34 call <...>
      REG_DEAD: di:SI
      REG_DEAD: si:SI
      REG_EH_REGION: 0
L37:
   38 NOTE_INSN_BASIC_BLOCK
   55 NOTE_INSN_EPILOGUE_BEG


to this:

   24 NOTE_INSN_BASIC_BLOCK
   26 di:SI=0x8
   62 pc=L61
i  63: barrier
L30:
   31 NOTE_INSN_BASIC_BLOCK
   33 di:SI=0x4
L61:
   59 NOTE_INSN_BASIC_BLOCK
   34 call <...>
      REG_DEAD: di:SI
      REG_DEAD: si:SI
      REG_EH_REGION: 0
   55 NOTE_INSN_EPILOGUE_BEG

So the call is unified, and that looks OK to me. Investigating...



More information about the Gcc-bugs mailing list