------- Comment #4 from ubizjak at gmail dot com 2009-07-09 09:05 ------- For some reason IRA reloads argp using ebp-relative address as:
Reloads for insn # 22 Reload 0: reload_in (DI) = (mem/c/i:DI (plus:SI (reg/f:SI 6 bp) (const_int 8 [0x8])) [2 x+0 S8 A32]) GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1), optional reload_in_reg: (mem/c/i:DI (plus:SI (reg/f:SI 6 bp) (const_int 8 [0x8])) [2 x+0 S8 A32]) Without IRA (4.3.x), gcc reloads argp through esp-relative addr: Reloads for insn # 23 Reload 0: reload_in (DI) = (mem/c/i:DI (plus:SI (reg/f:SI 7 sp) (const_int 12 [0xc])) [2 x+0 S8 A32]) GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1), optional reload_in_reg: (mem/c/i:DI (plus:SI (reg/f:SI 7 sp) (const_int 12 [0xc])) [2 x+0 S8 A32]) Confirmed, regression from 4.3. -- ubizjak at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|regression |rtl-optimization Ever Confirmed|0 |1 Keywords| |ra Known to work| |4.3.4 Last reconfirmed|0000-00-00 00:00:00 |2009-07-09 09:05:17 date| | Summary|Performance regression: |[4.4/4.5 Regression] stack |stack frames are generated |frames are generated even |even with -fomit-frame- |with -fomit-frame-pointer |pointer | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40667