Slava Pestov
|
355d89e8e8
|
compiler.cfg: now that kill-blocks cannot contain instructions that define vregs we can skip them all
|
2010-07-27 12:40:31 -04:00 |
Slava Pestov
|
e27adb2830
|
compiler: re-architect low-level optimizer to allow more than one output value per instruction
|
2010-07-13 07:40:14 -04:00 |
Slava Pestov
|
5d6816d364
|
compiler.cfg.ssa: fixing test failures
|
2010-06-15 17:18:51 -04:00 |
Slava Pestov
|
41d929a201
|
compiler.cfg.ssa.interference: implement linear-time interference test
|
2010-05-17 05:50:13 -04:00 |
Slava Pestov
|
6b7260a4a7
|
compiler.cfg.ssa.interference.live-ranges: compute correct live ranges for ##phi instructions
|
2010-05-17 05:50:13 -04:00 |
Slava Pestov
|
5ecd2b61c7
|
compiler.cfg: more silly optimizations
|
2010-05-14 18:37:09 -04:00 |
Slava Pestov
|
291543c300
|
compiler.cfg.ssa.live-ranges: clean up
|
2010-05-14 18:37:08 -04:00 |
Slava Pestov
|
e90712b1ed
|
compiler.cfg: cleanup
|
2010-05-03 17:34:26 -04:00 |
Slava Pestov
|
65f86bfce7
|
compiler.cfg.ssa.detruction: coalesce different representations in more cases
|
2010-05-03 17:34:22 -04:00 |
Slava Pestov
|
43f269e4eb
|
Register allocation now uses SSA properties to coalesce values with different representations
|
2010-05-03 17:34:20 -04:00 |
Slava Pestov
|
9b34a4a054
|
compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation
|
2010-05-03 17:34:18 -04:00 |
Slava Pestov
|
95ff5ffe51
|
New GC checks work in progress
|
2010-05-03 17:34:16 -04:00 |
Slava Pestov
|
458fd007be
|
compiler.cfg.representations: simplify a little
|
2010-05-03 17:34:11 -04:00 |
Slava Pestov
|
9cea3f2c93
|
compiler.cfg.ssa.liveness: remove unused pass
|
2010-05-03 17:34:08 -04:00 |
Slava Pestov
|
82fb1879af
|
Debugging untagged fixnums
|
2010-05-03 17:34:02 -04:00 |
Slava Pestov
|
5d3a7a7362
|
Untagged fixnums work in progress
|
2010-05-03 17:34:02 -04:00 |
Daniel Ehrenberg
|
248730d39f
|
Cleaning up compiler.cfg.ssa.construction
|
2010-03-17 20:12:10 -04:00 |
Daniel Ehrenberg
|
512fe14e4e
|
Merge branch 'bags' of git://github.com/littledan/Factor
Conflicts:
basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
basis/furnace/auth/auth.factor
basis/stack-checker/backend/backend.factor
|
2010-03-16 13:28:00 -04:00 |
Joe Groff
|
191ac353fd
|
generalize stack effects so we can bootstrap with the stricter stack effect checking
|
2010-03-08 23:38:10 -08:00 |
Daniel Ehrenberg
|
7cd3360cdd
|
Fixing ambiguity between sets and namespaces in many unit tests and furnace.auth
|
2010-02-26 17:17:40 -05:00 |
Daniel Ehrenberg
|
7074979745
|
Moving new-sets to sets
|
2010-02-26 16:01:01 -05:00 |
Daniel Ehrenberg
|
a72e2cc96c
|
Finishing converting compiler.cfg.ssa.construction.tdmsc to new-sets
|
2010-02-26 13:53:20 -05:00 |
Daniel Ehrenberg
|
30cc248bb3
|
Bit sets use new new set protocol, and compiler.cfg.ssa.construction.tdmsc is updated for it
|
2010-02-16 15:14:32 -06:00 |
Doug Coleman
|
afdb7f6329
|
remove a stray character
|
2010-01-22 15:07:01 -06:00 |
Doug Coleman
|
8c1d202b4c
|
Rename accumulator to collector, pusher to selector
|
2010-01-22 15:00:53 -06:00 |
Joe Groff
|
3fbe722561
|
Merge branch 'master' of http://factorcode.org/git/factor
Conflicts:
basis/locals/locals.factor
basis/peg/peg.factor
extra/infix/infix.factor
|
2009-10-28 16:17:24 -05:00 |
Slava Pestov
|
299b5b0f6c
|
filter-here -> filter!
|
2009-10-28 00:44:05 -05:00 |
Joe Groff
|
935c0797c3
|
update existing code for [let change
|
2009-10-27 22:05:37 -05:00 |
Slava Pestov
|
810cd7b4bb
|
compiler.cfg.ssa.destruction: don't coalesce registers with different representations, even if they're in the same register class, since this messes up spilling
|
2009-09-29 22:28:20 -05:00 |
Slava Pestov
|
08a2eb74f4
|
cpu.x86: shifts didn't work if dst != src1; re-organize file a bit
|
2009-09-28 05:39:53 -05:00 |
Slava Pestov
|
da5f0d0a14
|
compiler.cfg.ssa.destruction: we can coalesce two registers with different representations as long as they both belong to the same register class
|
2009-09-28 03:24:54 -05:00 |
Slava Pestov
|
1e841e5086
|
compiler.cfg.ssa.destruction: more aggressive coalescing work in progress
|
2009-09-27 17:17:26 -05:00 |
Slava Pestov
|
7d39499d86
|
compiler.cfg.ssa.cssa: correctly handle overflowing fixnum instructions
|
2009-09-23 02:47:56 -05:00 |
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
|
11dc0a23a8
|
compiler.cfg.ssa.liveness: fix tests
|
2009-08-08 16:15:45 -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
|
e21ca289c3
|
compiler.cfg.representations: new pass to make global unboxing decisions, relies on new compiler.cfg.loop-detection pass for loop nesting information
|
2009-08-08 00:24:46 -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
|
370f4c081d
|
compiler.cfg: convert code into two-operand form before SSA destruction; SSA destruction now operates on a relaxed SSA form where multiple defs of the same vreg are allowed, but only within a single basic block. This makes linear scan's coalescing redundant, allowing it to be removed completely
|
2009-08-05 18:57:46 -05:00 |
Joe Groff
|
63e5b0d6d8
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-02 23:16:52 -05:00 |
Joe Groff
|
7c5ef08aab
|
[ [ ... ] compare ] sort => [ ... ] sort-with
|
2009-08-02 20:09:23 -05:00 |
Slava Pestov
|
dac7edd2ab
|
compiler.cfg.def-use: remove compute-def-use word, passes have to call compute-defs or compute-uses now; compiler.cfg.ssa.liveness: don't compute dominance and def-use first since destruction does already
|
2009-08-02 19:12:32 -05:00 |
Slava Pestov
|
df6c87d350
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-02 18:46:27 -05:00 |
Slava Pestov
|
32d9102feb
|
Revert "SSA destruction uses new SSA liveness checking"
This reverts commit 98c7de8410 .
|
2009-08-02 18:41:31 -05:00 |
Daniel Ehrenberg
|
f7a53811c1
|
Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
basis/compiler/cfg/ssa/liveness/liveness-tests.factor
|
2009-08-02 18:23:49 -04:00 |
Daniel Ehrenberg
|
765efc1a66
|
Removing phi-outs set in SSA liveness checking
|
2009-08-02 18:15:18 -04:00 |
Slava Pestov
|
777bda70dc
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-02 17:07:06 -05:00 |
Slava Pestov
|
8a8ebcb908
|
compiler.cfg.ssa.liveness: fix unit tests
|
2009-08-02 17:06:35 -05:00 |
Daniel Ehrenberg
|
3b78d03e2a
|
minor SSA liveness code reorganization
|
2009-08-02 18:05:51 -04:00 |
Daniel Ehrenberg
|
cf7ab59fb7
|
SSA destruction uses new SSA liveness checking
|
2009-08-02 18:04:45 -04:00 |