Commit Graph

458 Commits (b52bdf60e440992df1832ccfd55144814cf713eb)

Author SHA1 Message Date
Slava Pestov b52bdf60e4 Fix for recent word renaming 2009-06-01 03:19:35 -05:00
Slava Pestov 3de85158de Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
Slava Pestov 0654e8fc51 Remove obsolete optimization 2009-06-01 03:05:49 -05:00
Slava Pestov a07279bf6d Fix compiler errors 2009-06-01 03:00:10 -05:00
Slava Pestov fc9e9a0ab1 Code cleanup 2009-06-01 02:32:42 -05:00
Slava Pestov 096803e58f Redo compiler.codegen.fixup and get %dispatch to work 2009-06-01 02:32:36 -05:00
Slava Pestov 64114947d2 Various improvements aimed at getting local optimization regressions fixed:
- Rename _gc to ##gc
- Absolute labels are now supported
- Generate _dispatch-label
2009-05-31 23:28:08 -05:00
Slava Pestov 6ac52761c6 Fix loop handling in stack-analysis 2009-05-31 19:04:26 -05:00
Slava Pestov 0375ce6bb4 Fix scoping issue in compiler.cfg.linear-scan.assignment 2009-05-31 18:21:23 -05:00
Slava Pestov fd70adf39e Rename _gc to ##gc 2009-05-31 18:21:11 -05:00
Slava Pestov 57d9d9f961 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 2ea8212968 Start cleaning up stack analysis 2009-05-30 13:22:30 -05:00
Slava Pestov 968a9bb666 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 5a5afcbfaa On second thought, linearization will be done after SSA destruction so live-in is accurate 2009-05-29 05:45:40 -05:00
Slava Pestov fbefd02bfb Put GC checks in the right place when linearizing, and generate _dispatch-labels 2009-05-29 05:36:04 -05:00
Slava Pestov 40949800bf 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 cef9ac778b compiler.cfg.alias-analysis: ##peek needs to set alias class of output value 2009-05-28 18:19:01 -05:00
Slava Pestov 6b81b3e055 compiler.cfg.liveness: correct handling of phi nodes 2009-05-28 17:54:27 -05:00
Slava Pestov 4c05bc4f10 Test updates 2009-05-28 02:50:07 -05:00
Slava Pestov 9987f272b0 CFG checker now checks consistency of successors and predecessors lists; fix long-standing bug in useless-blocks optimization 2009-05-28 02:49:51 -05:00
Slava Pestov 4292033da6 Fix alias analysis 2009-05-28 02:48:58 -05:00
Slava Pestov 1fc830a99e Add a with-scope so that optimize-tree doesn't pollute namespace 2009-05-27 18:58:54 -05:00
Slava Pestov 64da54234d Fixing local optimizations 2009-05-27 18:58:41 -05:00
Slava Pestov fe44ce2821 Better CFG checker 2009-05-27 18:58:14 -05:00
Slava Pestov dd8152f7bb Add phi elimination pass 2009-05-27 18:58:01 -05:00
Slava Pestov 3954c3fdc3 Add a new ##allocation union to remove some code duplication 2009-05-27 18:55:49 -05:00
Slava Pestov a29317df5f Remove old local DCE pass 2009-05-27 17:55:15 -05:00
Slava Pestov 1242a3a411 New local-optimization combinator removes some boilerplate 2009-05-26 19:56:56 -05:00
Slava Pestov 25805f9bfe Refactoring low-level optimizer to support stack analysis pass 2009-05-26 19:31:19 -05:00
Slava Pestov 957bc53d4b Move maybe-set-at to assocs 2009-05-26 18:45:37 -05:00
Slava Pestov f6fab1b035 Fix another bug in stack-analysis 2009-05-26 03:42:39 -05:00
Slava Pestov 75d1f6dfda compiler.cfg.stack-analysis: make it pass more tests 2009-05-26 02:59:14 -05:00
Slava Pestov 44437cc891 compiler.cfg.dce: new global dead code elimination pass 2009-05-26 02:58:57 -05:00
Slava Pestov 015b7afe93 compiler.cfg.checker: new check-rpo word 2009-05-26 02:58:40 -05:00
Slava Pestov 1c45d0e81b compiler.cfg.stack-analysis: progress 2009-05-25 19:18:13 -05:00
Slava Pestov 5d50f4eb5b compiler.cfg.checker: new vocabulary for checking CFG invariants 2009-05-25 19:16:58 -05:00
Slava Pestov 531580ed30 compiler.cfg.builder: don't make basic blocks after terminating calls 2009-05-25 19:16:36 -05:00
Doug Coleman 8da9d0f203 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Doug Coleman 34e1d60578 add a clamp word to math.order, use clamp word throughout libraries 2009-05-24 21:35:50 -05:00
Slava Pestov ffd0db30bf Merge branch 'master' into global_optimization 2009-05-23 15:55:04 -05:00
Slava Pestov c2499cdd55 stack-checker: fix case where invalid code could infer 2009-05-23 15:50:35 -05:00
Slava Pestov f28439329c compiler.cfg.stack-analysis: change how inc-d/inc-r work 2009-05-23 15:47:08 -05:00
Slava Pestov 8478881522 Merge branch 'master' into global_optimization 2009-05-23 01:03:24 -05:00
Joe Groff 483c936eb3 get rid of useless test 2009-05-21 20:56:57 -05:00
Slava Pestov b42bed7e77 CFG optimizer work in progress - adding phi nodes 2009-05-21 16:49:28 -05:00
Slava Pestov 873bb49849 Working on global optimizations 2009-05-19 17:28:13 -05:00
Slava Pestov ba04d5af1e Update documentation for stricter vocabulary search path semantics 2009-05-16 00:29:21 -05:00
Slava Pestov 344f3668e4 Fix escape analysis bug reported by Doug 2009-05-15 17:18:38 -05:00
Slava Pestov d7db5edadc Cleaning up USING: lists for new strict semantics 2009-05-14 16:54:16 -05:00
Slava Pestov 302d829ea9 Fix compiler breakage if a GENERIC# has an incorrect stack effect declaration 2009-05-12 21:23:52 -05:00