This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Reload bug
- To: law at cygnus dot com
- Subject: Re: Reload bug
- From: Andreas Schwab <schwab at suse dot de>
- Date: 02 Sep 1999 11:13:56 +0200
- Cc: gcc at gcc dot gnu dot org
- References: <25863.936257014@upchuck.cygnus.com>
Jeffrey A Law <law@cygnus.com> writes:
|> I'll note this doesn't occur in the mainline tree, but I have no idea if that
|> is because the bug has actually been fixed or because we're just not triggering
|> the problem anymore.
I have been able to reproduce the bug with CVS-yesterday, but not right
now. I think this is due to the ia32 merge, due to the change in the
subdi3 pattern. With the yesterday's compiler the offending insn looked
like this before global alloc:
(insn 83 77 85 (parallel[
(set (reg/v:DI 26)
(minus:DI (reg:DI 31)
(reg:DI 38)))
(clobber (scratch:SI))
] ) 215 {subdi3} (insn_list 77 (nil))
(expr_list:REG_DEAD (reg:DI 38)
(expr_list:REG_UNUSED (scratch:SI)
(nil))))
with (reg:DI 31) being equivalent to the const_double. Today I'm getting
this:
(insn 251 74 80 (set (reg/v:DI 28)
(reg:DI 35)) 66 {*movdi_2} (nil)
(nil))
(insn 80 251 82 (parallel [
(set (reg/v:DI 28)
(minus:DI (reg/v:DI 28)
(reg:DI 41)))
(clobber (reg:CC 17 flags))
]) 179 {subdi3} (insn_list 74 (nil))
(expr_list:REG_DEAD (reg:DI 41)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil))))
where (reg:DI 35) now contains the const_double.
Andreas.
--
Andreas Schwab "And now for something
schwab@suse.de completely different."
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg