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/50107] [IRA, i386] allocates registers in very non-optimal way


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

--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-19 16:05:58 UTC ---
We start with

(insn 11 4 16 2 (set (reg:TI 65) 
        (mult:TI (zero_extend:TI (reg/v:DI 64 [ b ])) 
            (zero_extend:TI (reg/v:DI 63 [ a ])))) uti-2.i:3 339
{bmi2_umulditi3_1}
     (expr_list:REG_DEAD (reg/v:DI 64 [ b ])
        (expr_list:REG_DEAD (reg/v:DI 63 [ a ])
            (nil))))

(insn 16 11 19 2 (set (reg/i:TI 0 ax) 
        (reg:TI 65)) uti-2.i:4 60 {*movti_internal_rex64}
     (expr_list:REG_DEAD (reg:TI 65) 
        (nil)))

and IRA generates:

(insn 24 4 11 2 (set (reg:DI 1 dx)
        (reg/v:DI 4 si [orig:64 b ] [64])) uti-2.i:3 62 {*movdi_internal_rex64}
     (nil))

(insn 11 24 16 2 (set (reg:TI 4 si [65])
        (mult:TI (zero_extend:TI (reg:DI 1 dx))
            (zero_extend:TI (reg/v:DI 5 di [orig:63 a ] [63])))) uti-2.i:3 339
{bmi2_umulditi3_1}
     (nil))

(insn 16 11 19 2 (set (reg/i:TI 0 ax) 
        (reg:TI 4 si [65])) uti-2.i:4 60 {*movti_internal_rex64}
     (nil))

(insn 19 16 22 2 (use (reg/i:TI 0 ax)) uti-2.i:4 -1
     (nil))


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