Joe Groff
|
a2fe9f1952
|
[ [ ... ] bi@ <=> ] sort => [ ... ] sort-with
|
2009-08-02 20:13:59 -05:00 |
Joe Groff
|
7c5ef08aab
|
[ [ ... ] compare ] sort => [ ... ] sort-with
|
2009-08-02 20:09:23 -05:00 |
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 |
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 |
Slava Pestov
|
cb36a40dc4
|
compiler.cfg.linear-scan: more test fixes
|
2009-07-29 07:04:52 -05:00 |