Hi, On your test case, I have this:
Web oldreg=72 newreg=111 Web oldreg=72 newreg=112 Web oldreg=72 newreg=139 Web oldreg=72 newreg=145 Web oldreg=72 newreg=151 Web oldreg=72 newreg=157 Web oldreg=72 newreg=163 Web oldreg=72 newreg=169 --- t.c.182r.loop2_done 2012-10-12 22:23:59.000000000 +0200 +++ t.c.183r.web 2012-10-12 22:24:23.000000000 +0200 - 79 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 79 r112:DI=r102:DI + REG_EQUAL: r111:DI+0x18 102 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 124 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 150 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 176 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 202 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 228 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 254 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + REG_EQUAL: r111:DI+0x18 - 285 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 285 r139:DI=r114:DI + REG_EQUAL: r111:DI+0x18 - 306 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 306 r145:DI=r141:DI + REG_EQUAL: r111:DI+0x18 - 327 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 327 r151:DI=r147:DI + REG_EQUAL: r111:DI+0x18 - 348 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 348 r157:DI=r153:DI + REG_EQUAL: r111:DI+0x18 - 369 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 369 r163:DI=r159:DI + REG_EQUAL: r111:DI+0x18 - 390 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 390 r169:DI=r165:DI + REG_EQUAL: r111:DI+0x18 - 411 r72:DI=r102:DI - REG_EQUAL: r72:DI+0x18 + 411 r72:DI=r171:DI + REG_EQUAL: r111:DI+0x18 So all appearances of r72 in REG_EQUAL notes have been replaced with r111. That means the constructed webs are wrong. If the REG_EQUAL is for the DEF operand of the insn (which must be a single_set insn, or there wouldn't be a note) then the DEF and the EQ_USE should be in the same web. I don't think this has anything to do with DF_RD_PRUNE_DEAD_DEFS. This is a pre-existing bug in web.c that just happens to be exposed by loop unrolling. Please do not apply the patch, it only papers over another problem in web.c. Ciao! Steven