Slava Pestov
|
ba55633b19
|
compiler.cfg.ssa.interference: cleanup
|
2009-08-02 10:35:02 -05:00 |
Slava Pestov
|
82c1106945
|
compiler.cfg.ssa.destruction: new implementation: simpler and more correct
|
2009-08-02 10:26:52 -05:00 |
Slava Pestov
|
c1c8424605
|
Compiler speedups
|
2009-08-02 09:16:21 -05:00 |
Slava Pestov
|
8aa41672ca
|
compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities
|
2009-08-02 08:20:50 -05:00 |
Slava Pestov
|
cff5976a0d
|
Move compiler.cfg.ssa.destruction.interference to compiler.cfg.ssa.interference
|
2009-08-02 08:15:36 -05:00 |
Slava Pestov
|
87e13db946
|
compiler.cfg.ssa.destruction.interference: fix a bug and add unit tests
|
2009-08-02 08:11:30 -05:00 |
Slava Pestov
|
7ec288b013
|
compiler.cfg.debugger: fix load error
|
2009-08-02 08:11:04 -05:00 |
Slava Pestov
|
b5a978d4e5
|
compiler.cfg.ssa.destruction: add some unit tests
|
2009-08-02 06:17:44 -05:00 |
Slava Pestov
|
c61b729125
|
compiler.cfg.critical-edges: update ##phi nodes
|
2009-08-02 06:17:22 -05:00 |
Slava Pestov
|
01f51a96cd
|
compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block
|
2009-08-02 06:16:58 -05:00 |
Slava Pestov
|
21489ce85e
|
compiler tests: add test case for coalescing bug
|
2009-08-02 03:49:54 -05:00 |
Slava Pestov
|
e1c7f7394a
|
compiler.cfg: clean up unit tests using some new utilities
|
2009-08-02 03:49:25 -05:00 |
Slava Pestov
|
9bde92220b
|
compiler.cfg.two-operand: if last instruction in a basic block is an overflowing arithmetic op of the form x = y op x, we now convert it correctly. This fixes compiler regression with benchmark.dawes after recent coalescing changes
|
2009-08-01 23:50:47 -05:00 |
Slava Pestov
|
e01fc93812
|
compiler.tree.propagation.call-effect: fix case where quotation inlining could enter an infinite loop: [ dup call( quot -- ) ] dup call( quot -- ) etc
|
2009-08-01 23:34:14 -05:00 |
Slava Pestov
|
1ef9cd27d3
|
compiler.cfg.copy-prop: eliminate phi nodes that have the same inputs as a previous phi node in the basic block
|
2009-08-01 22:33:27 -05:00 |
Slava Pestov
|
05b7bb0079
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-01 20:22:51 -05:00 |
Slava Pestov
|
20ec574965
|
compiler.cfg.ssa.destruction: fix bug in trivial-interference heuristic, and type error in code path that didn't run before
|
2009-08-01 20:22:31 -05:00 |
Daniel Ehrenberg
|
0838beed1e
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-01 20:33:41 -04:00 |
Slava Pestov
|
76368cae9b
|
compiler.cfg.liveness.ssa: fix bad bug discovered by littledan
|
2009-08-01 18:54:24 -05:00 |
Slava Pestov
|
2d719534cf
|
compiler.cfg.stacks: kill set now includes all locations eliminated as a result of stack height decrease; reduces number of ##replace instructions generated by 2%
|
2009-08-01 06:12:43 -05:00 |
Slava Pestov
|
61fe034e3e
|
cpu.ppc: put spill slots and GC roots in stack frame where subroutine calls can't clobber them
|
2009-07-31 23:47:07 -05:00 |
Slava Pestov
|
7c43f71c6d
|
compiler: Oops, typos in unit tests
|
2009-07-31 22:33:02 -05:00 |
Slava Pestov
|
1993274d01
|
alien.libraries: add-library should now reload the library properly, instead of just leaking DLL handles
|
2009-07-31 19:46:18 -05:00 |
Slava Pestov
|
d515715b0c
|
compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence
|
2009-07-31 18:34:15 -05:00 |
Slava Pestov
|
9a80fdb81b
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-31 17:59:00 -05:00 |
Slava Pestov
|
957a5b7b9b
|
cpu.ppc: fix small typos
|
2009-07-31 17:57:15 -05:00 |
Doug Coleman
|
3258f9c4ef
|
fix using list on win64
|
2009-07-31 16:27:18 -05:00 |
Sam Anklesaria
|
24e5d416a7
|
added various author files
|
2009-07-31 11:10:14 -05:00 |
Slava Pestov
|
dd2dc2bb24
|
cpu.ppc: Updating PowerPC backend for codegen changes over the last two months: new shift intrinsics added, fixnum overflow intrinsics are now treated like conditionals, GC checks are more complex and have a different API
|
2009-07-30 21:44:22 -05:00 |
Slava Pestov
|
45770c6250
|
Move a bunch of GC check generation logic to platform-independent side
|
2009-07-30 21:28:27 -05:00 |
Slava Pestov
|
47920a7a0c
|
Passing -profile-compiler switch to bootstrap collects timing information from optimizer passes
|
2009-07-30 21:27:52 -05:00 |
Slava Pestov
|
b43c8b40ac
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-30 19:11:02 -05:00 |
Daniel Ehrenberg
|
8134d775a8
|
Faster SSA liveness testing
|
2009-07-30 15:23:47 -04:00 |
Joe Groff
|
b6ddcafcbd
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-30 11:05:36 -05:00 |
Joe Groff
|
455956b16c
|
add additional SSE2 packed integer operations
|
2009-07-30 11:05:12 -05:00 |
Slava Pestov
|
be363d1a5b
|
compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation
|
2009-07-30 09:19:44 -05:00 |
Slava Pestov
|
cd7a1d6c58
|
Oopsie
|
2009-07-30 08:27:52 -05:00 |
Slava Pestov
|
d71e2f9577
|
cpu.x86: Fix shuffle bug. Shuffling bugs occurring in code that runs before optimizer/stack checker is online are only caught at runtime during bootstrap, what a pain
|
2009-07-30 05:12:40 -05:00 |
Slava Pestov
|
d81dec5d45
|
cpu.x86: fix a bug in small-register logic on 32-bit. Also, on 32-bit, we don't need to do any special register shuffling to work with 16-bit operands since all registers have 16-bit variants. So now only 8-bit operands on x86-32 require special treatment
|
2009-07-30 05:04:46 -05:00 |
Slava Pestov
|
e1caaca6df
|
bootstrap.compiler: compile a few more words early, for a big bootstrap speed boost
|
2009-07-30 02:45:29 -05:00 |
Slava Pestov
|
a9977d7c79
|
cpu.x86: update non-optimizing compiler backends for assembler vocab split
|
2009-07-30 02:22:37 -05:00 |
Slava Pestov
|
791fbe4003
|
compiler.cfg.linear-scan: fix case where a register can be made available for only a part of a live interval's lifetime, but there are no more usages after the split location. This case never came up until global stack analysis, at which point it started to be exercised on x86-32
|
2009-07-30 02:13:30 -05:00 |
Slava Pestov
|
6274c0337a
|
compiler.cfg.ssa.destruction: fix
|
2009-07-29 23:43:00 -05:00 |
Slava Pestov
|
b133649edd
|
compiler.cfg.ssa.destruction: tweak in preparation for landing Dan's new SSA liveness analysis
|
2009-07-29 23:35:51 -05:00 |
Slava Pestov
|
1e8d13c1f1
|
cpu.x86.assembler: fix extended 8-bit registers (DIL, SIL, SPL, BPL)
|
2009-07-29 22:32:22 -05:00 |
Slava Pestov
|
8ca17d053c
|
cpu.x86: use full set of 8-bit, 16-bit and 32-bit registers on x86-64 to avoid clumsy save/restore logic
|
2009-07-29 21:56:37 -05:00 |
Slava Pestov
|
73862a9a03
|
cpu.x86.assembler: move operands to operands sub-vocabulary, clean up small-reg-* code in compiler backend
|
2009-07-29 21:44:08 -05:00 |
Slava Pestov
|
eda66805b2
|
Merge branch 'xml-fix' of git://tiodante.com/git/factor
|
2009-07-29 19:27:13 -05:00 |
Sam Anklesaria
|
c54189ce19
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-29 15:51:33 -05:00 |
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
|
f3fa4debe3
|
bit-arrays: fix resize method regression after recent equal? method optimization
|
2009-07-29 06:47:50 -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 |
Sam Anklesaria
|
fe86d9f56e
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-28 16:42:38 -05:00 |
Joe Groff
|
f63b322859
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-28 14:38:25 -05:00 |
Joe Groff
|
7f1abec19e
|
i just cut and pasted
|
2009-07-28 14:38:10 -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
|
09d89c0d17
|
Merge branch 'dcn'
|
2009-07-28 12:37:45 -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 |
Joe Groff
|
3e8d928d29
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-28 12:20:16 -05:00 |
Joe Groff
|
9f3c8a9959
|
SSE4 opcodes for x86 assembler
|
2009-07-28 12:19:37 -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
|
f1683f9fcf
|
Move set-last from circular.private to sequences
|
2009-07-28 11:51:47 -05:00 |
Slava Pestov
|
4175585fd4
|
Merge branch 'master' into dcn
|
2009-07-28 11:20:43 -05:00 |
Slava Pestov
|
037fa69a21
|
Move Joe's HEX{ syntax to byte-arrays.hex in basis
|
2009-07-28 11:20:28 -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
|
5fe3bcff4d
|
Faster bit-array equality, add bit-set-subset? word
|
2009-07-28 11:14:57 -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
|
7c5e2f2933
|
tools.annotations: doc addition
|
2009-07-28 06:49: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 |
Joe Groff
|
5372113fce
|
SSE1–SSSE3 opcodes + branch hints for x86 assembler
|
2009-07-28 00:22:27 -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
|
bfb2a4c1fc
|
cpu.x86: compile a load of zero, and adds, subs where dst = src1 more efficiently
|
2009-07-27 22:27:54 -05:00 |
Joe Groff
|
7493e07c68
|
disassemble method for byte-arrays. HEX{ abcd } syntax for byte-arrays
|
2009-07-27 22:14:26 -05:00 |
Sam Anklesaria
|
16e44372e3
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-27 21:46:10 -05:00 |
Slava Pestov
|
c5d7ed58a5
|
Debugging compiler.cfg.coalescing
|
2009-07-27 19:24:13 -05:00 |