Slava Pestov
|
d0c393aa60
|
compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.
|
2009-08-08 20:02:56 -05:00 |
Slava Pestov
|
4b7ba38aab
|
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
|
2009-08-08 04:02:18 -05:00 |
Slava Pestov
|
725280d424
|
Split off the notion of a register representation from a register class
|
2009-08-07 17:44:50 -05:00 |
Slava Pestov
|
e1c7f7394a
|
compiler.cfg: clean up unit tests using some new utilities
|
2009-08-02 03:49:25 -05:00 |
Slava Pestov
|
9afa39aa3a
|
compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa
|
2009-07-28 12:56:33 -05:00 |
Slava Pestov
|
d10993b837
|
compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction
|
2009-07-28 09:34:08 -05:00 |
Slava Pestov
|
80e10f1bd0
|
compiler.cfg: Fix some unit tests
|
2009-07-28 08:56:14 -05:00 |
Slava Pestov
|
13c3fdcb5c
|
compiler.cfg: Fixing test failures
|
2009-07-24 06:08:07 -05:00 |
Slava Pestov
|
21a012e3d7
|
compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework
|
2009-07-22 03:08:28 -05:00 |
Slava Pestov
|
1aa6c9a0d5
|
compiler.cfg: Fix unit tests
|
2009-07-21 22:25:19 -05:00 |
Daniel Ehrenberg
|
8477cf8e91
|
Phi elimination doesn't have the swap problem now
|
2009-07-16 22:42:13 -05:00 |
Slava Pestov
|
ebcd0dc252
|
compiler.cfg: Fix regressions from recent changes
|
2009-07-14 20:43:06 -05:00 |
Slava Pestov
|
11731f8d48
|
compiler.cfg.value-numbering: merge in compiler.cfg.branch-folding
|
2009-07-14 20:05:01 -05:00 |
Slava Pestov
|
73a2222541
|
compiler.cfg.value-numbering: branch folding
|
2009-07-14 19:17:12 -05:00 |
Slava Pestov
|
2ace87370e
|
compiler.cfg.value-numbering: more optimizations
|
2009-07-14 16:05:25 -05:00 |
Slava Pestov
|
d1eea090b6
|
compiler.cfg.value-numbering: add some unit tests
|
2009-07-14 13:25:07 -05:00 |
Slava Pestov
|
c860a3b1e6
|
compiler.cfg: update unit tests for compiler.cfg.comparisons
|
2009-07-14 12:06:55 -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
|
117cb78d6b
|
Fixing local optimizations
|
2009-05-27 18:58:41 -05:00 |
Slava Pestov
|
1db81da264
|
Refactoring low-level optimizer to support stack analysis pass
|
2009-05-26 19:31:19 -05:00 |
Slava Pestov
|
7f766ab355
|
Update compiler tests for tag number changes
|
2009-04-28 21:43:30 -05: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
|
4f0a9f311e
|
Untangling some dependencies
|
2008-12-08 14:58:00 -06:00 |
Slava Pestov
|
ab689c098b
|
Clean up direct literal code and make a first attempt at PowerPC support
|
2008-11-24 08:16:14 -06:00 |
Slava Pestov
|
eb05dd3a12
|
Optimize a ##dispatch that is applied to the result of a ##sub-imm or ##add-imm; this eliminates an instruction from the common 1 fixnum-fast { ... } dispatch and 8 fixnum-fast { ... } dispatch code sequences appearing in generic word expansions
|
2008-11-13 04:16:08 -06:00 |
Slava Pestov
|
64cbf619a9
|
Add more algebraic simplifications: comparison of a comparison, comparison where first is immediate
|
2008-11-06 09:27:52 -06:00 |
Slava Pestov
|
885adc8dc9
|
Various improvements
|
2008-10-23 05:27:54 -05:00 |
Slava Pestov
|
52967c5bf1
|
Improved value numbering
|
2008-10-23 02:49:26 -05:00 |
Slava Pestov
|
d723b69990
|
Value numbering
|
2008-10-22 21:59:07 -05:00 |