Slava Pestov
|
25c42d04fd
|
compiler.cfg: Fix conflicts after merging local optimization refactoring into DCN branch
|
2009-07-22 03:17:53 -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
|
55111bdc24
|
Merge branch 'master' into dcn
|
2009-07-22 02:07:08 -05:00 |
Slava Pestov
|
c105b033ef
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-22 02:06:47 -05:00 |
Slava Pestov
|
e6a323dfaa
|
compiler.cfg.dataflow-analysis: iterative dataflow analysis framework
|
2009-07-22 02:06:35 -05:00 |
Slava Pestov
|
b39b0dd393
|
compiler.cfg.dcn.global: redo using compiler.cfg.dataflow-analysis
|
2009-07-22 02:05:40 -05:00 |
Slava Pestov
|
b869e1250c
|
compiler.cfg.stack-analysis: Out with the old, in with the new
|
2009-07-22 00:52:25 -05:00 |
Slava Pestov
|
86df665f78
|
Merge branch 'master' of git://factorcode.org/git/factor into dcn
|
2009-07-22 00:14:53 -05:00 |
Slava Pestov
|
1aa6c9a0d5
|
compiler.cfg: Fix unit tests
|
2009-07-21 22:25:19 -05:00 |
Slava Pestov
|
e49de006c4
|
compiler.cfg.dcn: Fixing various bugs, hook up with optimizer
|
2009-07-21 22:24:50 -05:00 |
Slava Pestov
|
cfb584ed8d
|
Merge branch 'master' into dcn
|
2009-07-21 17:51:22 -05:00 |
Slava Pestov
|
ead57fc5dd
|
compiler.cfg.registers: minor optimization
|
2009-07-21 17:49:44 -05:00 |
Slava Pestov
|
e7e5bee9a2
|
compiler.cfg.ssa: Cytron's SSA construction algorithm
|
2009-07-21 17:49:30 -05:00 |
Slava Pestov
|
802b4ffdf5
|
compiler.cfg.dcn: remove stores to stack locations above top of stack (these are never read again)
|
2009-07-21 17:46:09 -05:00 |
Slava Pestov
|
441c2bae2d
|
Merge branch 'master' into dcn
|
2009-07-21 03:08:42 -05:00 |
Slava Pestov
|
3136549f48
|
compiler.cfg.dominance: fix idom computation, compute dominator tree, compute dominance frontiers, add some tests
|
2009-07-21 03:02:45 -05:00 |
Slava Pestov
|
fd9a353fd6
|
Move conjoin-at from compiler.cfg.liveness to sets
|
2009-07-21 03:02:06 -05:00 |
Slava Pestov
|
e16acae2f5
|
compiler.cfg.dcn: flesh out rewrite pass
|
2009-07-21 01:24:19 -05:00 |
Slava Pestov
|
fdef772d67
|
compiler.cfg: if a block has an instruction that kills values it must be the only instruction in the block
|
2009-07-19 20:12:04 -05:00 |
Slava Pestov
|
0a95ddd105
|
compiler.cfg.dcn: Implement height tracking
|
2009-07-19 19:45:23 -05:00 |
Slava Pestov
|
605b37a949
|
compiler.cfg.builder: annotate calls with height changes, once again
|
2009-07-18 23:08:53 -05:00 |
Slava Pestov
|
ec1407bdae
|
compiler.cfg.dcn: starting work on deconcatenatization pass to replace compiler.cfg.stack-analysis
|
2009-07-18 22:27:42 -05:00 |
Slava Pestov
|
9cbd6c52a6
|
compiler.cfg.stack-analysis: fix outdated tests
|
2009-07-18 06:38:42 -05:00 |
Slava Pestov
|
32e4a97855
|
compiler.cfg.linear-scan: fix tests
|
2009-07-18 06:10:01 -05:00 |
Slava Pestov
|
343151fd62
|
compiler.tree.finalization: undo a change that resulted in a compile time regression
|
2009-07-18 03:33:24 -05:00 |
Slava Pestov
|
3ee68d1ff5
|
Disable fixnum>bignum and bignum>fixnum intrinsics since they're not very useful and they increase code size significantly
|
2009-07-18 01:07:43 -05:00 |
Slava Pestov
|
ea69566ddd
|
compiler.cfg.linear-scan: algorithmic optimizations
|
2009-07-18 00:14:39 -05:00 |
Slava Pestov
|
5061db2a48
|
compiler.cfg: Move tail call optimization to the end, compiler.tree: simplify finalization pass because of this
|
2009-07-17 22:57:28 -05:00 |
Slava Pestov
|
b83f27af74
|
compiler.cfg.builder: remove some dead code
|
2009-07-17 21:52:33 -05:00 |
Slava Pestov
|
43fab5b2ae
|
Remove some unnecessary work from stack-analysis pass
|
2009-07-17 18:39:41 -05:00 |
Slava Pestov
|
e88e7f70be
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-17 00:03:13 -05:00 |
Slava Pestov
|
1d735bc32d
|
compiler.tree.propagation.transforms: fix shift transform
|
2009-07-17 00:02:57 -05:00 |
Slava Pestov
|
3fb4fc1bde
|
Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases
|
2009-07-16 23:50:48 -05:00 |
Daniel Ehrenberg
|
8ea2996438
|
Removing two unused words in compiler.cfg.two-operand
|
2009-07-16 22:59:38 -05:00 |
Daniel Ehrenberg
|
3ca5665ad6
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-16 22:42:39 -05:00 |
Daniel Ehrenberg
|
8477cf8e91
|
Phi elimination doesn't have the swap problem now
|
2009-07-16 22:42:13 -05:00 |
Slava Pestov
|
e76dce8aff
|
Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint
|
2009-07-16 18:29:40 -05:00 |
Slava Pestov
|
685e32b091
|
compiler.cfg.stack-analysis: global optimization work in progress
|
2009-07-16 16:43:14 -05:00 |
Slava Pestov
|
fc0e0f1924
|
compiler.cfg.block-joining: relax join heuristic
|
2009-07-16 05:50:44 -05:00 |
Slava Pestov
|
884e41dd9c
|
compiler.cfg.linear-scan.live-intervals: remove bogus assertion
|
2009-07-16 02:42:01 -05:00 |
Slava Pestov
|
9f926ab88c
|
compiler.cfg.block-joining: join basic blocks connected by a single edge to improve effectiveness of local optimizations
|
2009-07-16 02:17:58 -05:00 |
Daniel Ehrenberg
|
062e33f8fb
|
fixing stupid bug in propagation
|
2009-07-16 00:43:54 -05:00 |
Daniel Ehrenberg
|
ee3e84a1f8
|
define-partial-eval framework in propagation pass makes it easy to add transforms; moving some transforms from stack checker to propagation, making them stronger
|
2009-07-16 00:34:50 -05:00 |
Slava Pestov
|
ebcd0dc252
|
compiler.cfg: Fix regressions from recent changes
|
2009-07-14 20:43:06 -05:00 |
Slava Pestov
|
4ac74e9304
|
compiler.cfg.branch-splitting: don't split if there's one predecessor
|
2009-07-14 20:42:50 -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
|
a75d558b30
|
compiler.cfg.intrinsics.fixnum: don't generate -imm forms anymore since value numbering does it
|
2009-07-14 19:18:57 -05:00 |
Slava Pestov
|
73a2222541
|
compiler.cfg.value-numbering: branch folding
|
2009-07-14 19:17:12 -05:00 |
Slava Pestov
|
03cd550b93
|
Fix codegen test
|
2009-07-14 16:11:14 -05:00 |
Slava Pestov
|
2f39e851f8
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-14 16:05:35 -05:00 |