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
1f4bd3e293
compiler.tree.propagation.known-words: don't want a type function on clone, all the methods are inline and it was wrong (reported by Joe Groff)
2010-07-07 17:25:32 -04:00
Slava Pestov
a55c8ee671
FFI rewrite part 6: deconcatenatize
2010-07-02 15:44:12 -04:00
Slava Pestov
ae2c2909af
Revert guarded method inlining
...
This reverts commit 44a835e3fc
, reversing
changes made to d45926bda0
.
2010-06-24 12:35:21 -04:00
Daniel Ehrenberg
7599841221
Merge branch 'master' of git://factorcode.org/git/factor into propagation
2010-06-23 12:17:24 -04:00
Slava Pestov
7e24994db5
Whitespace fix
2010-06-23 03:56:17 -04:00
Slava Pestov
68cd067f31
compiler.cfg.builder: if there is a conditional where every branch is known to throw an error, don't process any of the (unreachable) code after the conditional, since this can confuse analysis (reported by Daniel Ehrenberg)
2010-06-23 03:33:15 -04:00
Daniel Ehrenberg
12b0e16232
Unit tests for a couple of serious compiler bugs
2010-06-22 16:41:14 -04:00
Daniel Ehrenberg
2c8897c56b
Merge branch 'master' of git://factorcode.org/git/factor into propagation
2010-06-22 14:47:57 -04:00
Slava Pestov
167aff1b57
compiler.cfg.height: clean it up a bit
2010-06-22 04:14:03 -04:00
Slava Pestov
5d6816d364
compiler.cfg.ssa: fixing test failures
2010-06-15 17:18:51 -04:00
Daniel Ehrenberg
970f96c8b8
Fixing typo in modular arithmetic unit test (should use iota, not integer sequences, and just happened to work still)
2010-06-15 16:15:49 -04:00
Daniel Ehrenberg
30cfbc8512
Merge branch 'master' into propagation
2010-06-15 13:26:01 -04:00
Slava Pestov
e86f434f26
Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction
2010-06-14 19:39:46 -04:00
Slava Pestov
806e54630a
GC maps for more compact inline GC checks
2010-06-11 20:06:00 -04:00
Joe Groff
7fe04fa8ee
compiler.cfg.intrinsics.simd: intrinsic support for double-2>float-4 conversion
2010-06-01 00:34:50 -07:00
Slava Pestov
c9ad0856d5
cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64
2010-05-23 03:00:53 -04:00
Slava Pestov
ba7cb61133
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov
9e59192c73
compiler.cfg.builder.alien: use ##local-allot to fix value struct passing on Win64
2010-05-19 01:53:32 -04:00
Slava Pestov
91cd3b854d
Use ##local-allot to simplify longlong unboxing
2010-05-19 01:07:22 -04:00
Slava Pestov
0a0ebcd71d
compiler.tree.propagation.known-words: fix load error
2010-05-19 00:51:03 -04:00
Slava Pestov
86358b1dc3
alien.data: add with-scoped-allocation combinator for stack-allocating C data
2010-05-19 00:33:36 -04:00
Slava Pestov
77516c6932
compiler.cfg: generalize ##prepare-struct-caller instruction to alloca()-like ##local-allot
2010-05-19 00:33:15 -04:00
Slava Pestov
4dd58ce40e
compiler.tests: fix test for generalizations change
2010-05-18 23:08:37 -04:00
Slava Pestov
11511167e2
cpu.x86.x87: compares were clobbering ST0
2010-05-18 19:18:53 -04:00
Slava Pestov
1834241e5a
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
2010-05-18 18:46:31 -04:00
Slava Pestov
ea726f5680
Move remaining sequence operations from generalizations to sequences.generalizations where they belong
2010-05-18 18:36:47 -04:00
Slava Pestov
be733cd797
compiler.cfg.value-numbering: constant folding for ##shuffle-vector
2010-05-18 04:22:21 -04:00
Slava Pestov
53a51957df
compiler.cfg.value-numbering: add constant folding for ##gather-vector instructions, and fix ##scalar>vector constant folding for integers
2010-05-18 03:56:07 -04:00
Slava Pestov
6eaf2d7534
cpu.x86: add x87 codegen for Model T enthusiasts
2010-05-17 11:35:47 -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
0955f2c7eb
compiler.cfg.linear-scan: fix typo
2010-05-17 05:50:13 -04:00
Slava Pestov
7ff309d50e
cpu.x86: get rid of this extra-stack-space nonsense
2010-05-17 02:14:44 -04:00
Slava Pestov
3f8e13bf66
compiler.cfg: refactor stack frame code and fix frame pointer usage in callbacks
2010-05-16 21:04:40 -04:00
Slava Pestov
a7b5957f6d
compiler: hack to make XCreateIC() work on x86-64
2010-05-16 04:49:53 -04:00
Slava Pestov
8ebecac4d2
Merge branch 'master' of git://factorcode.org/git/factor
2010-05-16 04:10:03 -04:00
Slava Pestov
e6abc0be15
Fixes for FFI changes
2010-05-16 04:09:47 -04:00
Joe Groff
67ea40ade3
compiler.cfg.intrinsics.simd: use ^^select-vector for simd constant nth when available
2010-05-16 00:50:20 -07:00
Joe Groff
645164188d
compiler.cfg.instructions: ##select-vector instruction mapping to SSE4 PEXTR*
2010-05-16 00:50:19 -07:00
Slava Pestov
5b48cd2a63
FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing
2010-05-16 03:43:23 -04:00
Joe Groff
0c27f30475
compiler.cfg.intrinsics.simd: use new ##gather-int-vector insns to construct int vectors when available
2010-05-15 23:59:27 -07:00
Joe Groff
8c878ada17
compiler.cfg.instructions: ##gather-int-vector-2/4 instructions that map to SSE4 PINSR/PEXTR
2010-05-15 23:48:22 -07:00
Joe Groff
5d35917061
compiler.cfg.intrinsics: intrinsic for fixnum-bit-count
2010-05-15 13:59:47 -07:00
Joe Groff
7fec53b509
compiler.cfg.instructions: ##bit-count insn
2010-05-15 13:57:35 -07:00
Slava Pestov
5c0c87fcaa
compiler.cfg.value-numbering.comparisons: ##test-imm rewrite rule must check that the immediate fits
2010-05-15 03:19:24 -04:00
Daniel Ehrenberg
fbaa8d153f
Inlining no-method when a generic word has no method
2010-05-14 20:28:09 -05:00
Daniel Ehrenberg
05290ee1b1
Merge branch 'master' of git://factorcode.org/git/factor into propagation
...
Conflicts:
basis/compiler/tree/propagation/propagation-tests.factor
2010-05-14 18:59:39 -05:00
Slava Pestov
ad7636045f
compiler: fix bad unit test
2010-05-14 18:37:11 -04:00
Slava Pestov
5ecd2b61c7
compiler.cfg: more silly optimizations
2010-05-14 18:37:09 -04:00