projects
/
jscl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
813ca47
)
Fix unreachable blocks removing
author
David Vázquez
<davazp@gmail.com>
Mon, 20 May 2013 11:25:00 +0000
(12:25 +0100)
committer
David Vázquez
<davazp@gmail.com>
Mon, 20 May 2013 11:25:00 +0000
(12:25 +0100)
experimental/compiler.lisp
patch
|
blob
|
history
diff --git
a/experimental/compiler.lisp
b/experimental/compiler.lisp
index
ed326cb
..
3a22657
100644
(file)
--- a/
experimental/compiler.lisp
+++ b/
experimental/compiler.lisp
@@
-750,10
+750,10
@@
;; one, then break the link between them. So we discard it
;; from the flowgraph.
((eq (block-data block) 'unreachable)
;; one, then break the link between them. So we discard it
;; from the flowgraph.
((eq (block-data block) 'unreachable)
- (setf (block-succ block) nil)
(dolist (succ (block-succ block))
(when (eq (block-data succ) 'reachable)
(dolist (succ (block-succ block))
(when (eq (block-data succ) 'reachable)
- (remove block (block-pred succ)))))
+ (setf (block-pred succ) (remove block (block-pred succ)))))
+ (setf (block-succ block) nil))
;; Delete empty blocks
((and (empty-block-p block)
(not (boundary-block-p block))
;; Delete empty blocks
((and (empty-block-p block)
(not (boundary-block-p block))