--- /dev/null
-compiler.cfg.linear-scan ;
+ ! Copyright (C) 2010 Slava Pestov.
+ ! See http://factorcode.org/license.txt for BSD license.
+ USING: compiler.cfg.empty-blocks compiler.cfg.gc-checks
+ compiler.cfg.representations compiler.cfg.save-contexts
+ compiler.cfg.ssa.destruction compiler.cfg.build-stack-frame
++compiler.cfg.linear-scan compiler.cfg.scheduling ;
+ IN: compiler.cfg.finalization
+
+ : finalize-cfg ( cfg -- cfg' )
+ select-representations
++ schedule-instructions
+ insert-gc-checks
+ insert-save-contexts
+ destruct-ssa
+ linear-scan
+ build-stack-frame ;
- ! Copyright (C) 2008, 2009 Slava Pestov.
+ ! Copyright (C) 2008, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
- USING: kernel sequences accessors combinators namespaces
- compiler.cfg.tco
+ USING: compiler.cfg.tco
compiler.cfg.useless-conditionals
compiler.cfg.branch-splitting
compiler.cfg.block-joining
+compiler.cfg.height
compiler.cfg.ssa.construction
compiler.cfg.alias-analysis
compiler.cfg.value-numbering
compiler.cfg.copy-prop
compiler.cfg.dce
compiler.cfg.write-barrier
- compiler.cfg.scheduling
compiler.cfg.representations
+ compiler.cfg.gc-checks
+ compiler.cfg.save-contexts
compiler.cfg.ssa.destruction
compiler.cfg.empty-blocks
compiler.cfg.checker ;
IN: compiler.cfg.optimizer
- SYMBOL: check-optimizer?
-
- : ?check ( cfg -- cfg' )
- check-optimizer? get [
- dup check-cfg
- ] when ;
-
: optimize-cfg ( cfg -- cfg' )
optimize-tail-calls
delete-useless-conditionals
split-branches
join-blocks
+ normalize-height
construct-ssa
alias-analysis
value-numbering
copy-propagation
eliminate-dead-code
- eliminate-write-barriers
- select-representations
- schedule-instructions
- destruct-ssa
- delete-empty-blocks
- ?check ;
+ eliminate-write-barriers ;