Slava Pestov
|
2138b55708
|
New 'conditional dependency' mechanism for more accurate recording of recompilation information
|
2010-01-30 09:28:57 +13:00 |
Slava Pestov
|
dba5b0be08
|
compiler.tree.propagation.call-effect: clear out dependency tracking variables to ensure that infer calls made by call( as part of the compile process doesn't pollute the dependencies of the word being compiled
|
2010-01-30 09:28:57 +13:00 |
Slava Pestov
|
875053d645
|
compiler.tree.propagation.call-effect: eliminate some dispatch from call( expansion
|
2010-01-19 21:08:45 +13:00 |
Slava Pestov
|
4bf62e6b41
|
compiler.tree.propagation: ensure that we don't call 'equal?' or 'hashcode' on literals in words being compiled
|
2010-01-16 20:00:48 +13:00 |
Slava Pestov
|
880fb747fc
|
Removing integers-as-sequences
|
2010-01-15 07:15:33 +13:00 |
Slava Pestov
|
5770a5f9b3
|
Fix input-classes of /i and mod, and add some regression tests with various reductions of the original test-case from the terrain demo
|
2010-01-14 18:15:51 +13:00 |
Slava Pestov
|
005db61ad6
|
Rework min and max so that behavior with floats and NaNs is consistent between generic arithmetic and open-coded float intrinsics
|
2010-01-13 22:20:16 +13:00 |
Slava Pestov
|
1e137b6d6a
|
compiler.tree: remove some code duplication concerning #alien nodes
|
2010-01-07 16:06:07 +13:00 |
Joe Groff
|
d674ff8191
|
simd intrinsic implementation for v*high, v*hs+, vavg, and vsad
|
2009-12-05 14:52:18 -08:00 |
Joe Groff
|
ebcaaa0d64
|
Merge branch 'master' into simd-cleanup
|
2009-11-26 16:14:46 -08:00 |
Joe Groff
|
ea7c5b6d86
|
fix buggy simd intrinsics
|
2009-11-26 13:28:40 -08:00 |
Joe Groff
|
804c8c3bcc
|
fix simd intrinsic compilation
|
2009-11-24 11:37:28 -08:00 |
Joe Groff
|
faf4df9043
|
scalar fallbacks for simd intrinsics
|
2009-11-23 21:24:55 -08:00 |
Joe Groff
|
3b17573c7c
|
break simd intrinsics into a separate vocab so they can be intrinsified before the simd methods compile
|
2009-11-19 11:53:46 -08:00 |
Slava Pestov
|
08b6ebc7fa
|
Factor source files should not be executable
|
2009-11-21 17:50:43 -06:00 |
Slava Pestov
|
6d0598a385
|
heap-size now has a partial-eval instead of being foldable, and the partial-eval adds a dependency on the C type word. Fixes problem where redefining a struct didn't update specialized array
|
2009-11-15 11:26:37 -06:00 |
Joe Groff
|
993631e44c
|
Merge branch 'master' of git://factorcode.org/git/factor into simd-cleanup
Conflicts:
basis/math/vectors/simd/functor/functor.factor
|
2009-11-14 21:02:39 -06:00 |
Joe Groff
|
9efff4a322
|
backend fixups
|
2009-11-14 20:59:03 -06:00 |
Slava Pestov
|
aaad7b6b16
|
compiler.tree.propagation.branches: fix recent constraints change
|
2009-11-13 07:16:41 -06:00 |
Slava Pestov
|
b201cc4a6f
|
Fixing call( inline caching
|
2009-11-13 04:32:33 -06:00 |
Slava Pestov
|
eb165a5450
|
Instead of bumping the definition counter every time in the VM, bump it only if stack effects changed or macros were redefined
|
2009-11-13 03:52:14 -06:00 |
Slava Pestov
|
6c7ce97380
|
compiler.tree.propagation: fix bug in constraints that caused retain stack overflow
|
2009-11-13 03:22:57 -06:00 |
Slava Pestov
|
a841083ebe
|
compiler.tree.propagation.transforms: inline push if types are known. Speeds up reverse-complement, sort, sum-file benchmarks
|
2009-11-12 17:24:32 -06:00 |
Slava Pestov
|
2e861d2ff8
|
compiler.tree.propagation: implementing missing case in branch constraints
|
2009-11-12 17:24:11 -06:00 |
Slava Pestov
|
06fb247b8c
|
Invalidate inline caches used by call( and execute( when words are redefined
|
2009-11-12 16:09:07 -06:00 |
Slava Pestov
|
8f9d4e3d2c
|
stack-checker: split off stack-checker.dependencies from stack-checker.state
|
2009-11-08 20:34:46 -06:00 |
Joe Groff
|
b09b0f0686
|
Merge branch 'master' into simd-cleanup
|
2009-11-07 22:26:09 -06:00 |
Joe Groff
|
f780bbddc3
|
deprimitivize tuck and put it to pasture
|
2009-11-05 22:47:05 -06:00 |
Daniel Ehrenberg
|
d860a2febb
|
custom inlining for diff and intersect, when given a literal sequence. this cuts off 1/3 of the running time of a microbenchmark
|
2009-11-05 13:13:27 -06:00 |
Joe Groff
|
a279b360eb
|
Merge branch 'master' into simd-cleanup
Conflicts:
basis/math/vectors/simd/functor/functor.factor
|
2009-11-05 11:27:08 -06:00 |
Joe Groff
|
6cf6252753
|
update compiler.tree.propagation.simd, and don't load it till math.vectors.simd is loaded
|
2009-11-02 15:09:16 -06:00 |
Slava Pestov
|
d65296b334
|
vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)
|
2009-11-02 04:25:54 -06:00 |
Joe Groff
|
c6761710a6
|
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 |
Doug Coleman
|
b5fd809209
|
memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
|
2009-10-28 15:02:00 -05:00 |
Joe Groff
|
8b6665c57e
|
update existing code for [let change
|
2009-10-27 22:05:37 -05:00 |
Slava Pestov
|
496d8a990e
|
compiler.tree.propagation: fix broken corner cases in bitand and shift transforms, exposed by Hugh Aguilar's LC53 benchmark
|
2009-10-24 01:09:32 -05:00 |
Slava Pestov
|
47d6507548
|
compiler.tree.propagation.transforms: fix problem with 'shift' transform when input was a bignum
|
2009-10-23 07:50:56 -05:00 |
Slava Pestov
|
0a3029d9f2
|
compiler: on PPC, ANDI, ORI and XORI instructions take an unsigned 16-bit immediate, unlike ADDI, SUBI and MULLI which take a signed 16-bit immediate. The code generator was not aware of this, and so for example '[ >fixnum -16 bitand ]' would generate incorrect code. Split up small-enough? hook into immediate-arithmetic? and immediate-bitwise? and update value numbering to be aware of this. Fixes classes.struct bitfields test failure
|
2009-10-19 04:58:29 -05:00 |
Joe Groff
|
61befc8bb1
|
have vshuffle accept simd-128 variable byte shuffles
|
2009-10-10 11:30:11 -05:00 |
Slava Pestov
|
09fac95fad
|
compiler.tree.propagation.branches: fix live-branches computation for #dispatch nodes
|
2009-10-10 00:23:50 -05:00 |
Joe Groff
|
2bfcd7ed81
|
generate better code for vabs when instruction isn't available instead of using software fallback (-0.0 andn for floats, x > 0 ? x : -x for signed ints, nop for unsigned ints)
|
2009-10-09 14:24:55 -05:00 |
Joe Groff
|
4972fbcbc9
|
implement vneg as an intrinsic in terms of load -0, subtract
|
2009-10-09 13:16:39 -05:00 |
Daniel Ehrenberg
|
373f4420e9
|
Another identity in value numbering for bitfields
|
2009-10-08 15:20:42 -05:00 |
Daniel Ehrenberg
|
316895e6bf
|
Adding identity to propagation to remove some redundant bitands
|
2009-10-08 00:59:15 -05:00 |
Joe Groff
|
96cb1d5038
|
glue conversion intrinsics to instructions
|
2009-10-06 20:13:38 -05:00 |
Joe Groff
|
3e44e0bb02
|
rename SIMD vmerge and kids to (vmerge), make new vmerge more generally useful
|
2009-10-05 17:55:39 -05:00 |
Joe Groff
|
dca9d3e535
|
add %merge-vector-head and %merge-vector-tail instructions to back vmerge
|
2009-10-03 21:48:53 -05:00 |
Joe Groff
|
335df20713
|
add intrinsics for v<=, v<, v=, v>, v>=, vunordered?
|
2009-10-03 11:29:34 -05:00 |
Joe Groff
|
e2e75c6b3a
|
add intrinsic for vnot/vbitnot
|
2009-10-02 20:04:28 -05:00 |
Joe Groff
|
e153d544eb
|
implement vand, vor, vandn, and vxor as bitwise intrinsics for simd types
|
2009-10-02 14:17:01 -05:00 |