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 |
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 |
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 |
Slava Pestov
|
c5d7ed58a5
|
Debugging compiler.cfg.coalescing
|
2009-07-27 19:24:13 -05:00 |
Slava Pestov
|
1a765c38da
|
compiler.cfg.parallel-copy: fix algorithm
|
2009-07-27 16:54:47 -05:00 |
Slava Pestov
|
31555b05cf
|
compiler.codegen: collect instruction statistics
|
2009-07-27 03:58:15 -05:00 |
Slava Pestov
|
9fa71959b5
|
compiler.cfg.coalescing: fix shuffling bug
|
2009-07-27 03:58:01 -05:00 |
Slava Pestov
|
e112b0d70e
|
compiler.cfg.phi-elimination: no longer needed
|
2009-07-27 02:20:53 -05:00 |
Slava Pestov
|
ba696b68b8
|
compiler.cfg.coalescing: more or less complete, now needs debugging
|
2009-07-27 02:20:45 -05:00 |
Slava Pestov
|
a32cbdd231
|
compiler.cfg.coalescing: more work done
|
2009-07-27 00:31:21 -05:00 |
Slava Pestov
|
501629cf75
|
compiler.tree.propagation.info: fix load error
|
2009-07-27 00:30:24 -05:00 |
Slava Pestov
|
a5e5510615
|
compiler.cfg.coalescing: work in progress
|
2009-07-26 21:11:26 -05:00 |
Slava Pestov
|
e9935b6aad
|
compiler.cfg.copy-prop: remove ##phi nodes where all inputs are copy-equivalent
|
2009-07-26 21:11:02 -05:00 |
Slava Pestov
|
fc41140720
|
compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info
|
2009-07-26 21:10:33 -05:00 |
Slava Pestov
|
1319d8e549
|
compiler.cfg.def-use: build def-use chains
|
2009-07-26 21:10:14 -05:00 |
Slava Pestov
|
2137c9cc79
|
compiler.cfg.dominance: add pre order and max pre order numbers; use them to implement dominates? check
|
2009-07-26 21:10:05 -05:00 |
Joe Groff
|
eeb02815bc
|
set transform feedback format at program link
|
2009-07-25 21:19:56 -05:00 |
Slava Pestov
|
5bbd89f170
|
Merge branch 'dcn' of git://factorcode.org/git/factor into dcn
|
2009-07-24 20:30:11 -05:00 |
Slava Pestov
|
93764faad3
|
Merge branch 'master' of git://factorcode.org/git/factor into dcn
|
2009-07-24 20:29:09 -05:00 |
Slava Pestov
|
053de0af40
|
compiler.cfg.copy-prop: work in progress
|
2009-07-24 19:56:21 -05:00 |
Slava Pestov
|
2fb0198d48
|
compiler.cfg.parallel-copy: forgot to add this
|
2009-07-24 19:46:33 -05:00 |
Doug Coleman
|
c762d2b422
|
scaffold tools now uses the boolean type instead of "a boolean"
|
2009-07-24 18:09:14 -05:00 |
Slava Pestov
|
4624af75f4
|
compiler.cfg.phi-elimination: move some utilities from compiler.cfg.utilities here since that's the only place they get used
|
2009-07-24 16:45:31 -05:00 |
Slava Pestov
|
13c3fdcb5c
|
compiler.cfg: Fixing test failures
|
2009-07-24 06:08:07 -05:00 |
Slava Pestov
|
7068de6cd3
|
compiler.cfg.copy-prop: Global copy propagation
|
2009-07-24 05:30:46 -05:00 |
Slava Pestov
|
e0f6d89ff1
|
compiler.cfg.value-numbering: insert ##copy instructions for instructions whose expressions simplify. While subsequent usages are replaced with the instruction computing the simplified vreg locally, global usages may exist of the original instruction. In this case, the ##copy is not dead
|
2009-07-24 05:30:30 -05:00 |
Slava Pestov
|
de73534424
|
compiler.cfg.write-barrier: simplify a little bit. It doesn't need to do copy propagation, since its a separate pass now
|
2009-07-24 05:29:28 -05:00 |
Slava Pestov
|
7590ad3574
|
compiler.cfg: introduce less temporaries when building CFG
|
2009-07-24 03:37:18 -05:00 |
Slava Pestov
|
548e575ad9
|
Merge branch 'master' into dcn
|
2009-07-23 21:25:52 -05:00 |
Slava Pestov
|
2bea107202
|
compiler.cfg.builder: fix stack effect declaration
|
2009-07-23 21:24:15 -05:00 |
Slava Pestov
|
d947c61bd7
|
compiler.cfg.stacks: now performs online local DCN
|
2009-07-23 20:54:38 -05:00 |
Doug Coleman
|
f7b2e4a155
|
remove call to check-c-name
|
2009-07-23 18:14:07 -05:00 |
Doug Coleman
|
9bb38b870c
|
allow FUNCTION: to parse pointers in the name field
|
2009-07-23 18:05:09 -05:00 |
Slava Pestov
|
ff7f0e2f3b
|
Add testcase for recent bug
|
2009-07-23 18:03:14 -05:00 |
Slava Pestov
|
b1afd4c491
|
compiler.cfg.linear-scan.mapping: simplify
|
2009-07-23 18:03:04 -05:00 |
Slava Pestov
|
747a2d72c8
|
compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination
|
2009-07-23 18:02:46 -05:00 |
Slava Pestov
|
93c58a8bb5
|
compiler.cfg.branch-splitting: now that we do SSA construction we can split branches with fixnum overflow ops (which have a live-out)
|
2009-07-23 18:02:29 -05:00 |
Doug Coleman
|
555309ba86
|
fix another typo in ffi
|
2009-07-23 17:49:04 -05:00 |
Doug Coleman
|
37a9f01adc
|
fix typo in x11 binding
|
2009-07-23 17:39:12 -05:00 |
Doug Coleman
|
78bbf96a6d
|
move signed-le> to io.binary, clean up using list for math.bitwise
|
2009-07-23 15:54:57 -05:00 |
Doug Coleman
|
bad8e05937
|
Disallow C functions and parameter names that contain an asterisk
|
2009-07-23 15:48:10 -05:00 |
Joe Groff
|
739d99d4e8
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-07-23 13:39:52 -05:00 |