qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

commit d04ba5eae886ce4e5407ccd711fb1c9846dcf1f7
parent 96f0711dac07cd124843bb773228c98de2d5d914
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date:   Wed, 21 Dec 2016 09:54:50 -0500

fix wrong assertion in load elimination

The assertion fails incorrectly on a block right
after the end of a loop.

Diffstat:
Mload.c | 2+-
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->loop == il->blk->loop); + assert(bp->s2 || bp->loop == il->blk->loop); l = *il; if (bp->s2) l.type = LNoLoad;