commit 52cc53185e44a7e8690fb5ec856863a4d259034b
parent 3c3afdc896be4de996d7486e40e7b81488b745b9
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Wed, 28 Dec 2016 06:43:05 -0500
loosen assertion in load elimination
The assertion was invalid, I was assuming il->blk was
b when writing it. The new assertion should be right:
If the loop level were to decrease we would get out of
a cycle in cfg, this should not be possible unless we
go through a block with more than 1 predecessor.
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/load.c b/load.c
@@ -260,7 +260,7 @@ def(Slice sl, bits msk, Blk *b, Ins *i, Loc *il)
goto Load;
if (b->npred == 1) {
bp = b->pred[0];
- assert(bp->s2 || bp->loop == il->blk->loop);
+ assert(bp->loop >= il->blk->loop);
l = *il;
if (bp->s2)
l.type = LNoLoad;