Slava Pestov
|
eda950a3bf
|
compiler.cfg.value-numbering: fix ##compare and ##compare-branch rewrites
|
2009-07-13 12:33:58 -05:00 |
Slava Pestov
|
01f9addc3a
|
compiler.cfg.branch-splitting: split blocks with successors
|
2009-07-13 10:44:08 -05:00 |
Slava Pestov
|
31ae0845f3
|
compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges
|
2009-07-12 23:00:33 -05:00 |
Slava Pestov
|
07d8bed106
|
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
|
75b2e114f3
|
compiler.cfg.linear-scan: disable unit test for unimplemented feature
|
2009-07-10 07:48:49 -05:00 |
Slava Pestov
|
2c3fb59f4f
|
compiler.cfg.linear-scan: fix fencepost error in spill insertion
|
2009-07-10 03:58:51 -05:00 |
Slava Pestov
|
0be3f33296
|
insn. doesn't print numbers
|
2009-07-10 03:05:45 -05:00 |
Slava Pestov
|
e48b805bde
|
compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic
|
2009-07-10 00:25:46 -05:00 |
Slava Pestov
|
713c2411f7
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-09 23:14:45 -05:00 |
Slava Pestov
|
fe32e13fb0
|
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
|
71f1986ace
|
compiler.cfg: move back-edge? word from stack-analysis to top-level vocab
|
2009-07-09 23:13:30 -05:00 |
Slava Pestov
|
f93a71e978
|
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
|
55e5d60b23
|
Adding authors to compiler.tree.modular-arithmetic
|
2009-07-09 23:09:49 -05:00 |
Daniel Ehrenberg
|
bf706063e2
|
Improving modular arithmetic optimization to be aware of words like set-alien-unsigned-2
|
2009-07-09 23:07:38 -05:00 |
Slava Pestov
|
387c48fcc5
|
Revert "Remove unused vocabulary" -- committed patch from the wrong machine
This reverts commit 04c3c15411.
|
2009-07-09 19:50:15 -05:00 |
Slava Pestov
|
04c3c15411
|
Remove unused vocabulary
|
2009-07-09 19:10:36 -05:00 |
U-SLAVA-DFB8FF805\Slava
|
7f8c0d1e25
|
compiler.cfg.optimizer: fix irrelevant test
|
2009-07-09 06:17:10 -05:00 |
Slava Pestov
|
511ca9dea0
|
compiler.tree.propagation: better length propagation
|
2009-07-09 02:28:30 -05:00 |
Slava Pestov
|
4d3382431f
|
compiler.cfg.linear-scan: fixing unit tests
|
2009-07-09 00:48:00 -05:00 |
Slava Pestov
|
279733adfb
|
compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm
|
2009-07-09 00:20:03 -05:00 |
Slava Pestov
|
b02590cd58
|
compiler.cfg.linear-scan: code cleanups
|
2009-07-08 23:28:28 -05:00 |
Slava Pestov
|
65cb2d84a7
|
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
|
4ef76762e3
|
compiler.cfg.linear-scan: debugging spilling, add more assertions
|
2009-07-07 13:01:27 -05:00 |
Slava Pestov
|
39e660d8f6
|
compiler.cfg.linear-scan: code cleanup
|
2009-07-07 03:45:27 -05:00 |
Slava Pestov
|
15134e61e0
|
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
|
d6f45a5216
|
compiler.cfg.linear-scan: minor fixes
|
2009-07-05 22:51:53 -05:00 |
Slava Pestov
|
dd56f4158a
|
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
|
0a634ec4ec
|
Fix compiler.cfg.linear-scan.resolve test failure
|
2009-07-04 16:30:16 -05:00 |
Slava Pestov
|
3d7addbbf5
|
compiler.cfg.value-numbering.rewrite: disable ##compare optimizations for now
|
2009-07-04 03:26:37 -05:00 |
Slava Pestov
|
577a3cb968
|
compiler.cfg.value-numbering.rewrite: fix ##compare-imm rewrite rule
|
2009-07-04 02:50:50 -05:00 |
Slava Pestov
|
c431e0db99
|
compiler.cfg.linear-scan.resolve: More fixes
|
2009-07-04 00:45:06 -05:00 |
Slava Pestov
|
ab5fdc70ac
|
compiler.cfg.linear-scan: redo resolve pass to fix a correctness issue
|
2009-07-03 23:38:52 -05:00 |
Slava Pestov
|
12cbbbd6ad
|
compiler.cfg: clean up GC check generation to use spill-slot data type
|
2009-07-03 23:11:23 -05:00 |
Slava Pestov
|
3d92117ef1
|
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
|
e21cf72927
|
compiler.tree.dead-code: methods on flushable generics should be flushable
|
2009-07-03 21:31:26 -05:00 |
Doug Coleman
|
2ef03895ee
|
convert ##compare with immediates to ##compare-imm
|
2009-07-03 19:19:33 -05:00 |
Slava Pestov
|
a406a5aa23
|
compiler.cfg.predecessors: delete dead predecessors from phi nodes
|
2009-07-03 18:45:03 -05:00 |
Doug Coleman
|
779401d938
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 19:04:50 -05:00 |
Doug Coleman
|
9ce34bf972
|
add constant folding for integer ops, refactor some rewrites
|
2009-07-02 19:03:21 -05:00 |
Slava Pestov
|
1da42c2111
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 18:36:49 -05:00 |
Doug Coleman
|
d69c5ae260
|
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
|
88a545a215
|
fix a unit test so it's sure to overflow 64bit machines
|
2009-07-02 18:05:55 -05:00 |
Doug Coleman
|
29dc6fc837
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 18:01:58 -05:00 |
Doug Coleman
|
da9883b762
|
unit test to make sure adds are not optimized incorrectly
|
2009-07-02 18:01:00 -05:00 |
Doug Coleman
|
f4d3daea7d
|
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
|
086ebcdda4
|
half-floats: Add some more unit tests
|
2009-07-02 17:52:53 -05:00 |
Slava Pestov
|
fc029299d8
|
compiler.cfg.liveness: update for new ##phi node representation
|
2009-07-02 17:28:02 -05:00 |
Slava Pestov
|
2a63722c91
|
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
|
89f33a1e45
|
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
|
fe3ab1a0ac
|
simplify sub and sub-imm
|
2009-07-02 11:33:15 -05:00 |
Doug Coleman
|
c3f190daff
|
add a utility word vreg>constant
|
2009-07-02 11:32:23 -05:00 |
Slava Pestov
|
9605ffc0dc
|
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
|
49250ea56b
|
compiler.cfg.dce: minor renamings
|
2009-07-02 02:41:10 -05:00 |
Daniel Ehrenberg
|
d9d665480f
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-02 02:31:06 -05:00 |
Daniel Ehrenberg
|
f07100739b
|
Dead code elimination eliminates some dead allocations
|
2009-07-02 02:30:46 -05:00 |
Slava Pestov
|
8364f1146c
|
compiler.cfg.optimizer: enable branch folding
|
2009-07-02 01:05:59 -05:00 |
Slava Pestov
|
04508f2ece
|
compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics
|
2009-07-02 00:51:06 -05:00 |
Slava Pestov
|
ca0b05cd1d
|
compiler.cfg.linear-scan: fix spilling
|
2009-07-01 22:37:27 -05:00 |
Slava Pestov
|
2b5df8c298
|
compiler.tree.optimizer: Remove redundant call to compute-def-use
|
2009-07-01 17:41:20 -05:00 |
Slava Pestov
|
14bce3b400
|
compiler.cfg.linear-scan: debugging spilling and resolve pass
|
2009-07-01 17:41:07 -05:00 |
Slava Pestov
|
720ad7cfa7
|
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
|
0963e6b73a
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 23:07:36 -05:00 |
Slava Pestov
|
4983091344
|
compiler.cfg.optimizer: disable branch folding for now
|
2009-06-30 23:07:27 -05:00 |
Slava Pestov
|
0837732c10
|
compiler.cfg.builder: emit less crap after a #terminate node
|
2009-06-30 23:03:25 -05:00 |
Doug Coleman
|
b82bea4004
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 23:02:04 -05:00 |
Doug Coleman
|
ccd847083e
|
optimize fixnum*fast and fixnum-shift-fast
|
2009-06-30 23:01:44 -05:00 |
Doug Coleman
|
0ad81de3b6
|
combine add-imm instructions into a single add
|
2009-06-30 22:59:53 -05:00 |
Slava Pestov
|
cdd95472c7
|
compiler.cfg.branch-folding: fold away branches where both inputs are the same register. This results in 'push' being compiled slightly better
|
2009-06-30 22:43:32 -05:00 |
Slava Pestov
|
19036c5105
|
Fix possible infinite loop in skip-empty-blocks and remove redundant test in compiler.cfg.useless-conditionals
|
2009-06-30 22:43:02 -05:00 |
Slava Pestov
|
139bb68f8e
|
Change branch splitting around a bit, rename useless-blocks to useless-conditionals and rewrite it
|
2009-06-30 22:11:15 -05:00 |
Slava Pestov
|
752aebf89a
|
Fix conflict
|
2009-06-30 21:37:49 -05:00 |
Slava Pestov
|
fa4f710095
|
compiler.cfg Remove height tracking for ##call instructions, wire in ##no-tco instruction
|
2009-06-30 21:21:46 -05:00 |
Slava Pestov
|
9bcdf463a1
|
compiler.cfg.tco: fix tail call optimization for ##fixnum-mul
|
2009-06-30 21:08:08 -05:00 |
Slava Pestov
|
46a3608e3a
|
compiler.cfg.builder: fix stack effect
|
2009-06-30 21:07:55 -05:00 |
Slava Pestov
|
189043eae7
|
compiler.cfg.linear-scan.assignment: insert-copy did the wrong thing if the second interval had been split. Fixes compilation of 'trilerp'
|
2009-06-30 21:07:39 -05:00 |
Slava Pestov
|
f6b537f4c6
|
Fix conflict
|
2009-06-30 20:16:09 -05:00 |
Slava Pestov
|
89fbc8efb4
|
compiler.cfg.tco: Tail call optimization moved out of compiler.cfg.builder into its own pass
|
2009-06-30 20:13:35 -05:00 |
Doug Coleman
|
f824845433
|
remove duplicate using
|
2009-06-30 18:48:52 -05:00 |
Doug Coleman
|
116d55feac
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 18:48:10 -05:00 |
Doug Coleman
|
97ceba5000
|
make commutative operations with immediates output the same IR
|
2009-06-30 18:47:24 -05:00 |
Slava Pestov
|
79a60c8bc5
|
compiler.cfg.stack-analysis: fix tests
|
2009-06-30 18:22:54 -05:00 |
Slava Pestov
|
dc96968b99
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 18:12:00 -05:00 |
Slava Pestov
|
6efe62a49a
|
compiler.cfg.stack-analysis: enable global optimization
|
2009-06-30 18:11:45 -05:00 |
Slava Pestov
|
87aabfc053
|
compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing
|
2009-06-30 18:10:53 -05:00 |
Doug Coleman
|
eb2d574e79
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 16:45:57 -05:00 |
Doug Coleman
|
c5ffb08f5b
|
fix bug where traversal order was lost
|
2009-06-30 16:44:14 -05:00 |
Slava Pestov
|
ecf44c98bc
|
compiler.cfg.linear-scan: compute-free-pos was broken in the case where more than one inactive interval had the same physical register assigned
|
2009-06-30 16:07:58 -05:00 |
Doug Coleman
|
d888d13efe
|
spill to spill-temp, not to virtual spill addresses
|
2009-06-30 15:40:13 -05:00 |
Doug Coleman
|
228716a94e
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 15:32:11 -05:00 |
Doug Coleman
|
5ae6eb089d
|
add branch splitting pass to compiler.cfg
|
2009-06-30 15:31:48 -05:00 |
Slava Pestov
|
7fc239d638
|
compiler.cfg.stack-analysis: fix typos in unit tests
|
2009-06-29 16:37:40 -05:00 |
Slava Pestov
|
c2d4c42252
|
Fix conflict
|
2009-06-29 01:59:53 -05:00 |
Slava Pestov
|
5754bf0028
|
compiler.cfg.linear-scan.resolve: remove redundant vocabs from using list
|
2009-06-28 22:58:35 -05:00 |
Slava Pestov
|
b63133f9f6
|
compiler.cfg.stack-analysis: fix another corner case with ##peek insertion, and fix changed-loc merging
|
2009-06-28 22:52:28 -05:00 |
Doug Coleman
|
2ed3edeb41
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-28 16:43:45 -05:00 |
Doug Coleman
|
b2d3b588f0
|
fix bug in linear-scan.resolve by rewriting entire algorithm
|
2009-06-28 16:43:17 -05:00 |
Slava Pestov
|
9ab1bd1edb
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-27 17:33:00 -05:00 |
Slava Pestov
|
12df05da5d
|
compiler.cfg.stack-analysis: Fix case where both an ##inc-d/r and a ##peek get inserted
|
2009-06-27 17:32:37 -05:00 |
Doug Coleman
|
750d8c0a9a
|
Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
basis/compiler/cfg/linear-scan/resolve/resolve-tests.factor
|
2009-06-26 21:51:08 -05:00 |
Doug Coleman
|
c7a04858ee
|
add spill-temp to compiler.cfg.instructions, implement parallel register assignment in linear-scan.resolve
|
2009-06-26 21:48:21 -05:00 |