compiler.cfg.checker: run if a variable is set
parent
b73716d8cb
commit
5bb235d38f
|
@ -16,6 +16,9 @@ ERROR: last-insn-not-a-jump insn ;
|
||||||
[ ##return? ]
|
[ ##return? ]
|
||||||
[ ##callback-return? ]
|
[ ##callback-return? ]
|
||||||
[ ##jump? ]
|
[ ##jump? ]
|
||||||
|
[ ##fixnum-add-tail? ]
|
||||||
|
[ ##fixnum-sub-tail? ]
|
||||||
|
[ ##fixnum-mul-tail? ]
|
||||||
[ ##call? ]
|
[ ##call? ]
|
||||||
} 1|| [ drop ] [ last-insn-not-a-jump ] if ;
|
} 1|| [ drop ] [ last-insn-not-a-jump ] if ;
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,19 @@ compiler.cfg.dce
|
||||||
compiler.cfg.write-barrier
|
compiler.cfg.write-barrier
|
||||||
compiler.cfg.liveness
|
compiler.cfg.liveness
|
||||||
compiler.cfg.rpo
|
compiler.cfg.rpo
|
||||||
compiler.cfg.phi-elimination ;
|
compiler.cfg.phi-elimination
|
||||||
|
compiler.cfg.checker ;
|
||||||
IN: compiler.cfg.optimizer
|
IN: compiler.cfg.optimizer
|
||||||
|
|
||||||
|
SYMBOL: check-optimizer?
|
||||||
|
|
||||||
|
t check-optimizer? set-global
|
||||||
|
|
||||||
|
: ?check ( cfg -- cfg' )
|
||||||
|
check-optimizer? get [
|
||||||
|
dup check-cfg
|
||||||
|
] when ;
|
||||||
|
|
||||||
: optimize-cfg ( cfg -- cfg' )
|
: optimize-cfg ( cfg -- cfg' )
|
||||||
[
|
[
|
||||||
compute-predecessors
|
compute-predecessors
|
||||||
|
@ -27,4 +37,5 @@ IN: compiler.cfg.optimizer
|
||||||
eliminate-dead-code
|
eliminate-dead-code
|
||||||
eliminate-write-barriers
|
eliminate-write-barriers
|
||||||
eliminate-phis
|
eliminate-phis
|
||||||
|
?check
|
||||||
] with-scope ;
|
] with-scope ;
|
||||||
|
|
Loading…
Reference in New Issue