This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/26525] missed opportunity to use value in fp reg
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Mar 2006 03:07:43 -0000
- Subject: [Bug target/26525] missed opportunity to use value in fp reg
- References: <bug-26525-1057@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from pinskia at gcc dot gnu dot org 2006-03-02 03:07 -------
This is definitely a RA issue.
(insn:HI 12 65 15 2 (set (reg/v:DI 121 [ hi ])
(fix:DI (reg/v:DF 123 [ xh ]))) 265 {fix_truncdfdi2}
(insn_list:REG_DEP_TRUE 6 (nil))
(nil))
(insn:HI 15 12 16 2 (set (reg:CC 125)
(compare:CC (reg/v:DI 121 [ hi ])
(reg:DI 124))) 412 {*cmpdi_internal1} (insn_list:REG_DEP_TRUE 65
(insn_list:REG_DEP_TRUE 12 (nil)))
(expr_list:REG_DEAD (reg:DI 124)
(expr_list:REG_EQUAL (compare:CC (reg/v:DI 121 [ hi ])
(const_int 9223372036854775807 [0x7fffffffffffffff]))
(nil))))
...
(insn:HI 36 34 37 4 (set (reg:DF 132)
(float:DF (reg/v:DI 121 [ hi ]))) 262 {floatdidf2} (nil)
(expr_list:REG_DEAD (reg/v:DI 121 [ hi ])
(nil)))
The problem is that we need to put 121 into an integer register for the compare
but also in a fp register for the int-to-float.
Confirmed.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |missed-optimization, ra
Last reconfirmed|0000-00-00 00:00:00 |2006-03-02 03:07:41
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26525