regcprop and REG_DEAD

Paul Koning paul_koning@dell.com
Fri May 13 20:42:00 GMT 2011


In attempting to find out what's wrong in PR 48990 (wrong code for MIPS N32 -O1) it looks to me like the issue is that a register is marked dead, then still used afterwards.  This causes the delay slot fill logic to make a wrong decision (it brings a load instruction that overwrites the "dead" register into the delay slot from the branch-taken path, even though the fallthrough path still needs the original register value).

The register rewrite in question is made in regcprop.  

Question: that code doesn't appear to touch REG_DEAD notes at all.  Is that right?  From the definition of REG_DEAD, it seems that rewriting a later insns to use register x means that a preceding (REG_DEAD x) needs to be deleted.  Or moved to the later insn, perhaps.

	paul



More information about the Gcc mailing list