compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- )

db4
Björn Lindqvist 2014-12-10 16:14:08 +01:00
parent a0d4e9b417
commit 5fe9ce4235
12 changed files with 29 additions and 29 deletions

View File

@ -28,10 +28,9 @@ IN: compiler.cfg.block-joining
: join-blocks ( cfg -- ) : join-blocks ( cfg -- )
needs-predecessors needs-predecessors
[
dup post-order [ post-order [
dup join-block? dup join-block?
[ dup predecessor join-block ] [ drop ] if [ dup predecessor join-block ] [ drop ] if
] each ] each
] [ cfg-changed ] [ predecessors-changed ] tri ;
cfg-changed predecessors-changed drop ;

View File

@ -104,4 +104,4 @@ SYMBOL: visited
successors>> [ add-to-worklist ] each successors>> [ add-to-worklist ] each
] slurp-deque ] slurp-deque
cfg-changed drop ; cfg-changed ;

View File

@ -34,14 +34,14 @@ predecessors-valid? dominance-valid? loops-valid? ;
swap >>word swap >>word
swap >>entry ; swap >>entry ;
: cfg-changed ( cfg -- cfg ) : cfg-changed ( cfg -- )
f >>post-order f >>post-order
f >>linear-order f >>linear-order
f >>dominance-valid? f >>dominance-valid?
f >>loops-valid? ; inline f >>loops-valid? drop ; inline
: predecessors-changed ( cfg -- cfg ) : predecessors-changed ( cfg -- )
f >>predecessors-valid? ; f >>predecessors-valid? drop ;
: with-cfg ( ..a cfg quot: ( ..a cfg -- ..b ) -- ..b ) : with-cfg ( ..a cfg quot: ( ..a cfg -- ..b ) -- ..b )
[ dup cfg ] dip with-variable ; inline [ dup cfg ] dip with-variable ; inline

View File

@ -123,4 +123,4 @@ USE: compiler.cfg
needs-predecessors needs-predecessors
dup collect-copies dup collect-copies
dup rename-copies dup rename-copies
predecessors-changed drop ; predecessors-changed ;

View File

@ -131,5 +131,5 @@ PRIVATE>
dup blocks-with-gc [ dup blocks-with-gc [
[ needs-predecessors ] dip [ needs-predecessors ] dip
[ process-block ] each [ process-block ] each
cfg-changed dup cfg-changed
] unless-empty ; ] unless-empty ;

View File

@ -95,7 +95,7 @@ SYMBOL: temp-locations
: perform-mappings ( bb to mappings -- ) : perform-mappings ( bb to mappings -- )
dup empty? [ 3drop ] [ dup empty? [ 3drop ] [
mapping-instructions insert-basic-block mapping-instructions insert-basic-block
cfg get cfg-changed drop cfg get cfg-changed
] if ; ] if ;
: resolve-edge-data-flow ( bb to -- ) : resolve-edge-data-flow ( bb to -- )

View File

@ -74,4 +74,4 @@ SYMBOLS: edge-copies phi-copies ;
dup [ convert-phis ] each-basic-block dup [ convert-phis ] each-basic-block
cfg-changed drop ; cfg-changed ;

View File

@ -56,4 +56,4 @@ ERROR: bad-peek dst loc ;
dup [ visit-block ] each-basic-block dup [ visit-block ] each-basic-block
cfg-changed ; dup cfg-changed ;

View File

@ -72,6 +72,6 @@ IN: compiler.cfg.tco
] [ drop ] if ; ] [ drop ] if ;
: optimize-tail-calls ( cfg -- ) : optimize-tail-calls ( cfg -- )
dup [ optimize-tail-call ] each-basic-block [ [ optimize-tail-call ] each-basic-block ]
[ cfg-changed ]
cfg-changed predecessors-changed drop ; [ predecessors-changed ] tri ;

View File

@ -26,8 +26,9 @@ IN: compiler.cfg.useless-conditionals
instructions>> [ pop* ] [ [ ##branch new-insn ] dip push ] bi ; instructions>> [ pop* ] [ [ ##branch new-insn ] dip push ] bi ;
: delete-useless-conditionals ( cfg -- ) : delete-useless-conditionals ( cfg -- )
dup [ [
dup delete-conditional? [ delete-conditional ] [ drop ] if [
] each-basic-block dup delete-conditional? [ delete-conditional ] [ drop ] if
] each-basic-block
cfg-changed predecessors-changed drop ; ]
[ cfg-changed ] [ predecessors-changed ] tri ;

View File

@ -53,5 +53,6 @@ M: array process-instruction
[ process-instruction ] map flatten ; [ process-instruction ] map flatten ;
: value-numbering ( cfg -- ) : value-numbering ( cfg -- )
dup [ value-numbering-step ] simple-optimization [ [ value-numbering-step ] simple-optimization ]
cfg-changed predecessors-changed drop ; [ cfg-changed ]
[ predecessors-changed ] tri ;

View File

@ -121,5 +121,4 @@ M: insn gcse
needs-predecessors needs-predecessors
dup determine-value-numbers dup determine-value-numbers
dup eliminate-common-subexpressions dup eliminate-common-subexpressions
[ cfg-changed ] [ predecessors-changed ] bi ;
cfg-changed predecessors-changed ;