summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/optimize.tl4
1 files changed, 3 insertions, 1 deletions
diff --git a/stdlib/optimize.tl b/stdlib/optimize.tl
index 24cad22f..089b1334 100644
--- a/stdlib/optimize.tl
+++ b/stdlib/optimize.tl
@@ -363,8 +363,10 @@
(defmeth basic-blocks rename (bb insns dst src)
(build
(whilet ((insn (pop insns)))
- (let ((li [bb.li-hash insn]))
+ (let ((close (if-match (close . @nil) insn t))
+ (li [bb.li-hash insn]))
(cond
+ (close (add insn))
((or (mequal li.def0 dst src)
(mequal li.def1 dst src))
(add insn)