This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/17387] Redundant instructions in loop optimization
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jan 2005 01:43:34 -0000
- Subject: [Bug rtl-optimization/17387] Redundant instructions in loop optimization
- References: <20040909235415.17387.hjl@lucon.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2005-01-27 01:43 -------
GCC can't see that this is a NOP because of the zero_extend:
#(insn 34 30 37 (set (reg:DI 0 ax [orig:76 D.1460 ] [76])
# (zero_extend:DI (reg:SI 0 ax [orig:70 D.1460 ] [70]))) 111
{zero_extendsidi2_rex64} (insn_list:REG_DEP_ANTI 30 (insn_list:REG_DEP_TRUE 29
(nil)))
# (nil))
mov %eax, %eax # D.1460, D.1460 # 34
zero_extendsidi2_rex64/1 [length = 3]
Perhaps we should have a peephole2 for this. I'm curious why we can not
eliminate the move earlier on, though.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17387