diff options
-rw-r--r-- | share/txr/stdlib/optimize.tl | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl index b1008d0a..cf8a42b0 100644 --- a/share/txr/stdlib/optimize.tl +++ b/share/txr/stdlib/optimize.tl @@ -479,18 +479,15 @@ (set bl.links nil) (set bl.rlinks nil)) bb.(link-graph) - (let* ((visited (hash :eq-based)) - (reachable (build - (labels ((visit (bl) - (when (test-set [visited bl]) - (add bl) - (when bl.next - (visit bl.next)) - [mapcar visit bl.links]))) - (for ((bl bb.root)) (bl) ((set bl bl.next)) - (add bl) - (visit bl)) - (visit bb.root))))) + (let* ((visited (hash :eq-based))) + (labels ((visit (bl) + (when (test-set [visited bl]) + (when bl.next + (visit bl.next)) + [mapcar visit bl.links]))) + (for ((bl bb.root)) (bl) ((set bl bl.next)) + (visit bl)) + (visit bb.root)) (set bb.list [keep-if visited bb.list]) (each ((bl bb.list)) bb.(elim-next-jump bl))) |