diff options
Diffstat (limited to 'stdlib/compiler.tl')
-rw-r--r-- | stdlib/compiler.tl | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl index 2a8f97cd..bf6496bb 100644 --- a/stdlib/compiler.tl +++ b/stdlib/compiler.tl @@ -1723,15 +1723,14 @@ bb.(thread-jumps) bb.(elim-dead-code)) (when (>= olev 5) - bb.(calc-liveness) - bb.(peephole) - (when (>= olev 6) - bb.(link-graph) - bb.(thread-jumps)) - bb.(elim-dead-code) - (when (>= olev 6) - bb.(calc-liveness) - bb.(peephole))) + (let ((nblocks nil)) + (while* (and (>= olev 6) + (neql nblocks (set nblocks bb.(num-blocks)))) + bb.(calc-liveness) + bb.(peephole) + bb.(link-graph) + bb.(thread-jumps) + bb.(elim-dead-code)))) (cond ((>= olev 7) bb.(merge-jump-thunks) |