This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/50107] [IRA, i386] allocates registers in very non-optimal way
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 19 Aug 2011 16:05:58 +0000
- Subject: [Bug rtl-optimization/50107] [IRA, i386] allocates registers in very non-optimal way
- Auto-submitted: auto-generated
- References: <bug-50107-4@http.gcc.gnu.org/bugzilla/>
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))