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
|
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 |
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
|
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 |
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
|
e7a227ad40
|
add constant folding for integer ops, refactor some rewrites
|
2009-07-02 19:03:21 -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
|
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 |