[Bug rtl-optimization/34312] [4.3 regression] spill failure with -O2 -fPIC -march=pentium-m on i386

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Dec 3 13:45:00 GMT 2007



------- Comment #4 from ubizjak at gmail dot com  2007-12-03 13:45 -------
This all comes down to PR 19398. Since JamoClusterSearch() is defined as
static, gcc switches to register passing convention, and this uses %eax, %edx
and %ecx. %ebx is used as a PIC register, so we are out of QImode registers.

The pattern is defined as:

(define_insn "*lshrsi3_1"
  [(set (match_operand:SI 0 "nonimmediate_operand" "=rm,rm")
        (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0,0")
                     (match_operand:QI 2 "nonmemory_operand" "I,c")))
   (clobber (reg:CC FLAGS_REG))]

so reload is in fact free to use "m" alternative. Unfortunatelly, reload rather
dies than touches memory.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |19398
          Component|target                      |rtl-optimization


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



More information about the Gcc-bugs mailing list