Commit Graph

19 Commits (296a3eb554c15214e228c1c4a958c88db03f3fdb)

Author SHA1 Message Date
Slava Pestov 9e987e8642 Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
Slava Pestov 692b479302 Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass 2009-05-31 12:20:46 -05:00
Slava Pestov e04df76f60 Various codegen improvements:
- new-insn word to construct instructions
- cache RPO in the CFG
- re-organize low-level optimizer so that MR is built after register allocation
- register allocation now stores instruction numbers in the instructions themselves
- split defs-vregs into defs-vregs and temp-vregs
2009-05-29 13:11:34 -05:00
Slava Pestov 76d74c16af Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation 2009-05-29 01:39:14 -05:00
Slava Pestov ceb332f596 compiler.cfg.alias-analysis: ##peek needs to set alias class of output value 2009-05-28 18:19:01 -05:00
Slava Pestov 1fa465d77f Fix alias analysis 2009-05-28 02:48:58 -05:00
Slava Pestov 3b79d61496 Add a new ##allocation union to remove some code duplication 2009-05-27 18:55:49 -05:00
Slava Pestov ce25e0ad8d New local-optimization combinator removes some boilerplate 2009-05-26 19:56:56 -05:00
Slava Pestov 1db81da264 Refactoring low-level optimizer to support stack analysis pass 2009-05-26 19:31:19 -05:00
Doug Coleman 407377fc98 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Slava Pestov 6b25e99470 Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00
Slava Pestov 44bfff7c7b Rename ##load-indirect to ##load-reference since this is more descriptive; value numbering doesn't assign expressions to ##load-reference nodes since this would end up folding literals which were eq? but not = 2009-01-29 01:44:58 -06:00
Slava Pestov daf2857d7b define-inline now takes an effect parameter
C: now sets the stack effect of the new word to slot names
add new basis/constants vocab; CONSTANT: foo bar is equivalent to : foo bar ; inline
(going to fold CONSTANT:, ALIAS: and qualified into core soon perhaps)
tighten the screws: inline words now need a stack declaration too
update some usages of inline words
2008-12-15 19:44:56 -06:00
Slava Pestov 4f0a9f311e Untangling some dependencies 2008-12-08 14:58:00 -06:00
Slava Pestov a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Slava Pestov 08b277e892 Fix alias anlaysis bug: result of ##box-alien and ##box-float did not get an AC, so calling hi-tag would not compile 2008-11-03 01:52:55 -06:00
Slava Pestov 492a15e345 Move insn class to compiler.cfg.instructions 2008-10-24 09:17:06 -05:00
Slava Pestov 885adc8dc9 Various improvements 2008-10-23 05:27:54 -05:00
Slava Pestov f09813f6fd Alias analysis 2008-10-22 18:37:47 -05:00