Slava Pestov
|
cb36a40dc4
|
compiler.cfg.linear-scan: more test fixes
|
2009-07-29 07:04:52 -05:00 |
Slava Pestov
|
cb7735ddf4
|
compiler.cfg: remove 'regs' slot from instruction tuples now that register allocation doesn't use it anymore
|
2009-07-29 06:50:46 -05:00 |
Slava Pestov
|
639a1cbb1f
|
compiler.cfg.linear-scan.resolve: fix unit tests to not depend on hashing
|
2009-07-29 06:48:01 -05:00 |
Slava Pestov
|
34432c5f18
|
compiler: fix test
|
2009-07-29 06:39:54 -05:00 |
Slava Pestov
|
74766d1ccd
|
compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement
|
2009-07-29 06:36:14 -05:00 |
Slava Pestov
|
1532a6f2e3
|
compiler.cfg.linear-scan.assignment: more efficient data structures
|
2009-07-29 06:12:33 -05:00 |
Slava Pestov
|
50bf6f52b4
|
compiler.cfg.linearization: fix bootstrap
|
2009-07-28 22:52:07 -05:00 |
Slava Pestov
|
eabaf9fc40
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-28 21:31:25 -05:00 |
Slava Pestov
|
8c6b38533c
|
compiler.cfg.linearization: rotate loops. 2x speedup with empty times loop, 1.5x speedup on benchmark.dawes
|
2009-07-28 21:31:08 -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
|
d913d7331f
|
compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations
|
2009-07-28 12:29:07 -05:00 |
Slava Pestov
|
7d3b6892d5
|
compiler.cfg.ssa.construction: use the optimization from the pruned-SSA paper to minimize stack pushing and popping
|
2009-07-28 11:52:42 -05:00 |
Slava Pestov
|
7a6bdffaaa
|
IN: fix for compiler test
|
2009-07-28 11:16:21 -05:00 |
Slava Pestov
|
62fe308776
|
compiler.cfg.ssa.construction: Use TDMSC algorithm to compute Phi placement
|
2009-07-28 11:16:10 -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
|
d394dd3c36
|
compiler.cfg.branch-splitting: re-enable with a better heuristic
|
2009-07-28 08:48:05 -05:00 |
Slava Pestov
|
ff81b055a5
|
compiler.cfg.utilities: add loop-entry? word
|
2009-07-28 08:47:50 -05:00 |
Slava Pestov
|
e6f5eab598
|
compiler.cfg.linear-scan: fix resolve pass
|
2009-07-28 08:47:35 -05:00 |
Slava Pestov
|
3edf4a2b75
|
compiler.cfg.coalescing: cleanups
|
2009-07-28 08:47:03 -05:00 |
Slava Pestov
|
cf26800dbd
|
Revert "compiler.cfg.coalescing: some cleanups"
This reverts commit e5834c4ba7 .
|
2009-07-28 07:51:44 -05:00 |
Slava Pestov
|
18717a449f
|
compiler.cfg.linear-scan.resolve: unit tests
|
2009-07-28 07:41:41 -05:00 |
Slava Pestov
|
009cfbfc8d
|
compiler.cfg.utilities: fix stack effect declaration
|
2009-07-28 07:40:09 -05:00 |
Slava Pestov
|
857ef94acc
|
compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass
|
2009-07-28 07:39:46 -05:00 |
Slava Pestov
|
f2c8f2824a
|
compiler.cfg.coalescing: some cleanups
|
2009-07-28 07:37:50 -05:00 |
Slava Pestov
|
3e6e5278a4
|
compiler.cfg.utilities: fix load error
|
2009-07-28 06:51:03 -05:00 |
Slava Pestov
|
a4cb242396
|
compiler.cfg.coalescing: Only run if CFG has ##phi nodes, fix interference for case where value is not used in a block and is not live-in, forgot to run liveness analysis first
|
2009-07-28 06:48:20 -05:00 |
Slava Pestov
|
cb07256ff5
|
Add some compiler tests
|
2009-07-28 06:45:31 -05:00 |
Slava Pestov
|
1878b0dc32
|
compiler.cfg.liveness: fix liveness computation in case where instruction uses a register it defines
|
2009-07-28 06:45:02 -05:00 |
Slava Pestov
|
d2b158c8e4
|
compiler.cfg.critical-edges: reset RPO
|
2009-07-28 01:04:13 -05:00 |
Slava Pestov
|
cf90945b4c
|
Add some tests that directly generate low level IR
|
2009-07-27 22:29:33 -05:00 |
Slava Pestov
|
3cc71a1934
|
compiler.cfg.coalescing: precompute live intervals, add support for instructions where output cannot equal an input, split critical edges
|
2009-07-27 22:29:17 -05:00 |
Slava Pestov
|
e8cf50ac3e
|
compiler.cfg.two-operand: make it work in more cases
|
2009-07-27 22:28:29 -05:00 |
Slava Pestov
|
423d2996fa
|
compiler.cfg.debugger: reset vreg counters
|
2009-07-27 22:28:13 -05:00 |
Slava Pestov
|
c5d7ed58a5
|
Debugging compiler.cfg.coalescing
|
2009-07-27 19:24:13 -05:00 |
Slava Pestov
|
1a765c38da
|
compiler.cfg.parallel-copy: fix algorithm
|
2009-07-27 16:54:47 -05:00 |
Slava Pestov
|
31555b05cf
|
compiler.codegen: collect instruction statistics
|
2009-07-27 03:58:15 -05:00 |
Slava Pestov
|
9fa71959b5
|
compiler.cfg.coalescing: fix shuffling bug
|
2009-07-27 03:58:01 -05:00 |
Slava Pestov
|
e112b0d70e
|
compiler.cfg.phi-elimination: no longer needed
|
2009-07-27 02:20:53 -05:00 |
Slava Pestov
|
ba696b68b8
|
compiler.cfg.coalescing: more or less complete, now needs debugging
|
2009-07-27 02:20:45 -05:00 |
Slava Pestov
|
a32cbdd231
|
compiler.cfg.coalescing: more work done
|
2009-07-27 00:31:21 -05:00 |
Slava Pestov
|
501629cf75
|
compiler.tree.propagation.info: fix load error
|
2009-07-27 00:30:24 -05:00 |
Slava Pestov
|
a5e5510615
|
compiler.cfg.coalescing: work in progress
|
2009-07-26 21:11:26 -05:00 |
Slava Pestov
|
e9935b6aad
|
compiler.cfg.copy-prop: remove ##phi nodes where all inputs are copy-equivalent
|
2009-07-26 21:11:02 -05:00 |
Slava Pestov
|
fc41140720
|
compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info
|
2009-07-26 21:10:33 -05:00 |
Slava Pestov
|
1319d8e549
|
compiler.cfg.def-use: build def-use chains
|
2009-07-26 21:10:14 -05:00 |
Slava Pestov
|
2137c9cc79
|
compiler.cfg.dominance: add pre order and max pre order numbers; use them to implement dominates? check
|
2009-07-26 21:10:05 -05:00 |
Slava Pestov
|
053de0af40
|
compiler.cfg.copy-prop: work in progress
|
2009-07-24 19:56:21 -05:00 |
Slava Pestov
|
2fb0198d48
|
compiler.cfg.parallel-copy: forgot to add this
|
2009-07-24 19:46:33 -05:00 |
Slava Pestov
|
4624af75f4
|
compiler.cfg.phi-elimination: move some utilities from compiler.cfg.utilities here since that's the only place they get used
|
2009-07-24 16:45:31 -05:00 |
Slava Pestov
|
13c3fdcb5c
|
compiler.cfg: Fixing test failures
|
2009-07-24 06:08:07 -05:00 |
Slava Pestov
|
7068de6cd3
|
compiler.cfg.copy-prop: Global copy propagation
|
2009-07-24 05:30:46 -05:00 |
Slava Pestov
|
e0f6d89ff1
|
compiler.cfg.value-numbering: insert ##copy instructions for instructions whose expressions simplify. While subsequent usages are replaced with the instruction computing the simplified vreg locally, global usages may exist of the original instruction. In this case, the ##copy is not dead
|
2009-07-24 05:30:30 -05:00 |
Slava Pestov
|
de73534424
|
compiler.cfg.write-barrier: simplify a little bit. It doesn't need to do copy propagation, since its a separate pass now
|
2009-07-24 05:29:28 -05:00 |
Slava Pestov
|
7590ad3574
|
compiler.cfg: introduce less temporaries when building CFG
|
2009-07-24 03:37:18 -05:00 |
Slava Pestov
|
2bea107202
|
compiler.cfg.builder: fix stack effect declaration
|
2009-07-23 21:24:15 -05:00 |
Slava Pestov
|
d947c61bd7
|
compiler.cfg.stacks: now performs online local DCN
|
2009-07-23 20:54:38 -05:00 |
Slava Pestov
|
ff7f0e2f3b
|
Add testcase for recent bug
|
2009-07-23 18:03:14 -05:00 |
Slava Pestov
|
b1afd4c491
|
compiler.cfg.linear-scan.mapping: simplify
|
2009-07-23 18:03:04 -05:00 |
Slava Pestov
|
747a2d72c8
|
compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination
|
2009-07-23 18:02:46 -05:00 |
Slava Pestov
|
93c58a8bb5
|
compiler.cfg.branch-splitting: now that we do SSA construction we can split branches with fixnum overflow ops (which have a live-out)
|
2009-07-23 18:02:29 -05:00 |
Slava Pestov
|
610c3b33c7
|
compiler.cfg.intrinsics: Disable inline allocation for now
|
2009-07-22 21:11:06 -05:00 |
Slava Pestov
|
69ded76c66
|
Fixing compiler tests
|
2009-07-22 21:10:50 -05:00 |
Slava Pestov
|
45c66b58af
|
compiler.cfg.dcn.rewrite: remove unused word
|
2009-07-22 19:18:12 -05:00 |
Slava Pestov
|
5559d77d05
|
compiler.cfg.checker: eliminate dead code before checking MR
|
2009-07-22 19:17:57 -05:00 |
Slava Pestov
|
d29c275089
|
compiler.cfg.builder: Fix construction of ##return instructions from #return-recursive nodes
|
2009-07-22 19:17:21 -05:00 |
Slava Pestov
|
091d2d07f2
|
Merge branch 'master' into dcn
|
2009-07-22 06:19:44 -05:00 |
Slava Pestov
|
995a96d7e4
|
compiler.cfg.dominance: fix unit tests
|
2009-07-22 06:19:31 -05:00 |
Slava Pestov
|
26a5d51d93
|
compiler.cfg.ssa: now builds pruned SSA form
|
2009-07-22 06:08:04 -05:00 |
Slava Pestov
|
d864214119
|
compiler.cfg.dominance: add algorithm for computing iterated dominance frontiers
|
2009-07-22 06:07:51 -05:00 |
Slava Pestov
|
89db2e745d
|
Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code
|
2009-07-22 06:07:28 -05:00 |
Slava Pestov
|
31491df5f1
|
Removed unused code from compiler.cfg.def-use
|
2009-07-22 06:05:33 -05:00 |
Slava Pestov
|
44bcd258f6
|
Insert _loop-entry in linearization pass instead of in CFG builder, so that optimizations don't have to worry about it
|
2009-07-22 06:05:17 -05:00 |
Slava Pestov
|
1e5ce41364
|
Fix bootstrap
|
2009-07-22 03:26:27 -05:00 |
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 |
Slava Pestov
|
2ace87370e
|
compiler.cfg.value-numbering: more optimizations
|
2009-07-14 16:05:25 -05:00 |
Daniel Ehrenberg
|
6c32e61098
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-14 14:25:42 -05:00 |
Daniel Ehrenberg
|
bb06facb01
|
new is inlined in the propagation pass when the class is known
|
2009-07-14 14:16:39 -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 |
Daniel Ehrenberg
|
79afab82d8
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-14 01:24:08 -05:00 |
Daniel Ehrenberg
|
47500fad06
|
call( and execute( inline known quotations/words in the propagation pass
|
2009-07-14 01:12:45 -05:00 |
Slava Pestov
|
5ccf7bc99f
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-13 22:59:19 -05:00 |
Doug Coleman
|
ccae9b59a4
|
clean up value numbering conversion of ##add/sub to ##add/sub-imm
|
2009-07-13 19:02:05 -05:00 |
Slava Pestov
|
768e2a5148
|
compiler.cfg: split off condition codes into a comparisons sub-vocabulary
|
2009-07-13 14:42:52 -05:00 |
Slava Pestov
|
3b244d5d41
|
compiler.cfg.value-numbering: fix ##compare and ##compare-branch rewrites
|
2009-07-13 12:33:58 -05:00 |
Slava Pestov
|
d7aeae45be
|
compiler.cfg.branch-splitting: split blocks with successors
|
2009-07-13 10:44:08 -05:00 |
Slava Pestov
|
8ff473e42c
|
compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges
|
2009-07-12 23:00:33 -05:00 |
Slava Pestov
|
608fb054f2
|
compiler.cfg: Some code cleanups, update stack-analysis and phi-insertion to work on CFGs with critical edges
|
2009-07-12 22:22:46 -05:00 |
Slava Pestov
|
1cf6bb7f99
|
compiler.cfg.linear-scan: disable unit test for unimplemented feature
|
2009-07-10 07:48:49 -05:00 |
Slava Pestov
|
ae67de6f90
|
compiler.cfg.linear-scan: fix fencepost error in spill insertion
|
2009-07-10 03:58:51 -05:00 |
Slava Pestov
|
11347e784c
|
insn. doesn't print numbers
|
2009-07-10 03:05:45 -05:00 |
Slava Pestov
|
dea872c7e3
|
compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic
|
2009-07-10 00:25:46 -05:00 |
Slava Pestov
|
7edb2df01c
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-09 23:14:45 -05:00 |
Slava Pestov
|
789d82745c
|
compiler.cfg.value-numbering: factor out value renaming into a separate compiler.cfg.renaming vocabulary
|
2009-07-09 23:14:26 -05:00 |
Slava Pestov
|
6810b922ee
|
compiler.cfg: move back-edge? word from stack-analysis to top-level vocab
|
2009-07-09 23:13:30 -05:00 |
Slava Pestov
|
d02854b04e
|
compiler.cfg.linear-scan: two live intervals which are coalesced will use the same spill slot
|
2009-07-09 23:12:49 -05:00 |
Daniel Ehrenberg
|
4b29d13fda
|
Adding authors to compiler.tree.modular-arithmetic
|
2009-07-09 23:09:49 -05:00 |
Daniel Ehrenberg
|
cf3038b7d6
|
Improving modular arithmetic optimization to be aware of words like set-alien-unsigned-2
|
2009-07-09 23:07:38 -05:00 |
Slava Pestov
|
bb701bed7e
|
Revert "Remove unused vocabulary" -- committed patch from the wrong machine
This reverts commit 04c3c15411 .
|
2009-07-09 19:50:15 -05:00 |
Slava Pestov
|
8008bfb1f9
|
Remove unused vocabulary
|
2009-07-09 19:10:36 -05:00 |
U-SLAVA-DFB8FF805\Slava
|
508b7272b5
|
compiler.cfg.optimizer: fix irrelevant test
|
2009-07-09 06:17:10 -05:00 |
Slava Pestov
|
e0d84eb3a2
|
compiler.tree.propagation: better length propagation
|
2009-07-09 02:28:30 -05:00 |
Slava Pestov
|
d0980edafe
|
compiler.cfg.linear-scan: fixing unit tests
|
2009-07-09 00:48:00 -05:00 |
Slava Pestov
|
5a64290386
|
compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm
|
2009-07-09 00:20:03 -05:00 |
Slava Pestov
|
4507bdcbc0
|
compiler.cfg.linear-scan: code cleanups
|
2009-07-08 23:28:28 -05:00 |
Slava Pestov
|
c20e6c290f
|
compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies
|
2009-07-08 23:07:06 -05:00 |
Slava Pestov
|
e2044602aa
|
compiler.cfg.linear-scan: debugging spilling, add more assertions
|
2009-07-07 13:01:27 -05:00 |
Slava Pestov
|
43c873f00a
|
compiler.cfg.linear-scan: code cleanup
|
2009-07-07 03:45:27 -05:00 |
Slava Pestov
|
0bcf4ce535
|
compiler.cfg.linear-scan: Re-implement spilling, add some additional runtime assertions, simplify assignment pass since it doesn't have to track spill slots anymore; just assume a live value that's not in active or inactive is spilled
|
2009-07-07 03:28:55 -05:00 |
Slava Pestov
|
4402d8652c
|
compiler.cfg.linear-scan: minor fixes
|
2009-07-05 22:51:53 -05:00 |
Slava Pestov
|
a452f32e3a
|
compiler.cfg.linear-scan: Get cycle breaking in resolve pass to work by allocating a spare spill slot for this purpose
|
2009-07-05 21:32:23 -05:00 |
Slava Pestov
|
f14a61fac2
|
Fix compiler.cfg.linear-scan.resolve test failure
|
2009-07-04 16:30:16 -05:00 |
Slava Pestov
|
c0f1b2205a
|
compiler.cfg.value-numbering.rewrite: disable ##compare optimizations for now
|
2009-07-04 03:26:37 -05:00 |
Slava Pestov
|
fb488025aa
|
compiler.cfg.value-numbering.rewrite: fix ##compare-imm rewrite rule
|
2009-07-04 02:50:50 -05:00 |
Slava Pestov
|
c00af97fa1
|
compiler.cfg.linear-scan.resolve: More fixes
|
2009-07-04 00:45:06 -05:00 |
Slava Pestov
|
da13681bc8
|
compiler.cfg.linear-scan: redo resolve pass to fix a correctness issue
|
2009-07-03 23:38:52 -05:00 |
Slava Pestov
|
8d3a45dee2
|
compiler.cfg: clean up GC check generation to use spill-slot data type
|
2009-07-03 23:11:23 -05:00 |
Slava Pestov
|
d07c0429fc
|
compiler.cfg.linear-scan: assign spill slots to vregs globally, so that resolve pass never has to perform a memory->memory transfer
|
2009-07-03 22:51:40 -05:00 |
Slava Pestov
|
0180209f4e
|
compiler.tree.dead-code: methods on flushable generics should be flushable
|
2009-07-03 21:31:26 -05:00 |
Doug Coleman
|
cae8fed16c
|
convert ##compare with immediates to ##compare-imm
|
2009-07-03 19:19:33 -05:00 |
Slava Pestov
|
2c3b2a0b71
|
compiler.cfg.predecessors: delete dead predecessors from phi nodes
|
2009-07-03 18:45:03 -05:00 |
Doug Coleman
|
84de04e502
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 19:04:50 -05:00 |
Doug Coleman
|
e7a227ad40
|
add constant folding for integer ops, refactor some rewrites
|
2009-07-02 19:03:21 -05:00 |
Slava Pestov
|
c5e7266e17
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 18:36:49 -05:00 |
Doug Coleman
|
f11ba00667
|
Revert "fix a unit test so it's sure to overflow 64bit machines"
This reverts commit 88a545a215 .
|
2009-07-02 18:18:50 -05:00 |
Doug Coleman
|
559a77be43
|
fix a unit test so it's sure to overflow 64bit machines
|
2009-07-02 18:05:55 -05:00 |
Doug Coleman
|
2aade588ee
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 18:01:58 -05:00 |
Doug Coleman
|
e11e3cf6d2
|
unit test to make sure adds are not optimized incorrectly
|
2009-07-02 18:01:00 -05:00 |
Doug Coleman
|
80eb5068e2
|
fix bug in rewriting #add -- wasn't checking small-enough?, and change negative adds to subtractions/negative subtractions to adds
|
2009-07-02 17:55:35 -05:00 |
Slava Pestov
|
9404a7d0e3
|
half-floats: Add some more unit tests
|
2009-07-02 17:52:53 -05:00 |
Slava Pestov
|
6d46bf623c
|
compiler.cfg.liveness: update for new ##phi node representation
|
2009-07-02 17:28:02 -05:00 |
Slava Pestov
|
90daf6d03d
|
compiler.cfg: change representation of ##phi nodes. The input slot of ##phi nodes is now an assoc mapping predecessors to values, rather than a sequence of values. This ensures that optimization which delete predecessors can be implemented
|
2009-07-02 17:10:50 -05:00 |
Doug Coleman
|
86901eb01e
|
rewrite rules for add/sub/mul/and/or/xor-imm, rewrite load-immediate/add to be add-imm
|
2009-07-02 11:35:31 -05:00 |
Doug Coleman
|
04cb320c55
|
simplify sub and sub-imm
|
2009-07-02 11:33:15 -05:00 |
Doug Coleman
|
826464724e
|
add a utility word vreg>constant
|
2009-07-02 11:32:23 -05:00 |
Slava Pestov
|
3a4916462b
|
compiler.cfg.dce: now performs three passes over the CFG to fix a phase ordering issue
|
2009-07-02 03:17:19 -05:00 |
Slava Pestov
|
513a600664
|
compiler.cfg.dce: minor renamings
|
2009-07-02 02:41:10 -05:00 |
Daniel Ehrenberg
|
392e313f05
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 02:31:06 -05:00 |
Daniel Ehrenberg
|
fcfd7f01a3
|
Dead code elimination eliminates some dead allocations
|
2009-07-02 02:30:46 -05:00 |
Slava Pestov
|
2de41f01da
|
compiler.cfg.optimizer: enable branch folding
|
2009-07-02 01:05:59 -05:00 |
Slava Pestov
|
af875ba836
|
compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics
|
2009-07-02 00:51:06 -05:00 |
Slava Pestov
|
e6b1c21590
|
compiler.cfg.linear-scan: fix spilling
|
2009-07-01 22:37:27 -05:00 |
Slava Pestov
|
41f48e3cfe
|
compiler.tree.optimizer: Remove redundant call to compute-def-use
|
2009-07-01 17:41:20 -05:00 |
Slava Pestov
|
a19f22ec82
|
compiler.cfg.linear-scan: debugging spilling and resolve pass
|
2009-07-01 17:41:07 -05:00 |
Slava Pestov
|
7e3fa45512
|
compiler.cfg.stack-analysis: fix unit tests for useless-blocks renaming and ##no-tco instruction
|
2009-06-30 23:17:33 -05:00 |
Slava Pestov
|
a3b21292b6
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 23:07:36 -05:00 |
Slava Pestov
|
f894baf60e
|
compiler.cfg.optimizer: disable branch folding for now
|
2009-06-30 23:07:27 -05:00 |
Slava Pestov
|
72b6bef19d
|
compiler.cfg.builder: emit less crap after a #terminate node
|
2009-06-30 23:03:25 -05:00 |
Doug Coleman
|
8b728e0a8a
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 23:02:04 -05:00 |
Doug Coleman
|
b1c7374175
|
optimize fixnum*fast and fixnum-shift-fast
|
2009-06-30 23:01:44 -05:00 |