Daniel Ehrenberg
3760b1792f
instance? optimizes null checks
2010-05-04 16:46:07 -05:00
Slava Pestov
df25d4ca1c
compiler.tree.propagation: fix both-fixnums? trick
2010-05-03 17:34:30 -04:00
Slava Pestov
c724550291
compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm
2010-05-03 17:34:28 -04:00
Slava Pestov
9b770c09fb
compiler.tree.propagation: fix tests
2010-05-03 17:34:14 -04:00
Slava Pestov
fd84bb98bc
strings: move string-nth primitive out of the VM and into the library
2010-05-03 17:34:12 -04:00
Slava Pestov
bcede96e6c
compiler.tree.propagation.transforms: open-code >fixnum when input is already a fixnum or f
2010-04-19 01:14:00 -05:00
Slava Pestov
1d7089dc04
compiler: combine ##load-constant followed by ##alien-double into a ##load-double on x86-32, saving an integer register
2010-04-18 21:42:45 -05:00
Slava Pestov
e3ea77be7d
compiler.tree.propagation.recursive: more fine-grained generalize-counter-interval eliminates overflow checks from binary-search
2010-04-18 21:42:45 -05:00
Slava Pestov
07d6a1f20f
compiler.tree.propagation: fix scalability issue with constraints
2010-04-14 17:19:26 -07:00
Slava Pestov
6b337d8bc6
compiler.tree.propagation: don't constant-fold boa constructors of identity-tuple subclasses
2010-03-26 22:44:56 -04:00
Daniel Ehrenberg
1b61e2e5cf
Merge branch 'bags' of git://github.com/littledan/Factor
...
Conflicts:
basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
basis/furnace/auth/auth.factor
basis/stack-checker/backend/backend.factor
2010-03-16 13:28:00 -04:00
Joe Groff
c4f50b982a
Merge branch 'master' into row-polymorphism
2010-03-10 11:48:41 -08:00
Slava Pestov
0c94d75efe
compiler.tree.propagation: clean up
2010-03-10 15:15:49 +13:00
Daniel Ehrenberg
bff3da2833
Propagation tracks length just like any other read-only slot
2010-03-09 15:58:44 -05:00
Joe Groff
8a36d57505
make effect variables part of effect syntax, stored out of band in effect tuple
2010-03-05 13:30:10 -08:00
Daniel Ehrenberg
0f0571e48a
Moving new-sets to sets
2010-02-26 16:01:01 -05:00
Daniel Ehrenberg
8b219ef472
Making it fast to create a new hashset
2010-02-26 13:24:26 -05:00
Daniel Ehrenberg
9943f225d9
Making propagation and tuple.parser refer to new-sets; adding some missing features from sets into new-sets
2010-02-26 12:07:37 -05:00
Slava Pestov
daf2e5270c
Get foldable and flushable declarations working on typed words
2010-02-24 00:16:55 +13:00
Slava Pestov
58d035f1c7
Fix two problems with recompilation: predicate constant folding was recording unsatisfied dependencies in some cases, and literal tuple instances of forgotten classes would cause problems for method inlining
2010-02-20 12:01:47 +13:00
Slava Pestov
6bf88d104b
compiler.tree.propagation.transforms: tweak 2^ transform to fix performance regression in benchmark.beust2; introduced by 47d6507548
2010-02-16 01:03:09 +13:00
Slava Pestov
4cc907e1af
compiler.tree.propagation, compiler.tree.escape-analysis: make these passes handle constants in a more robust way in compilation units involving tuple reshaping
2010-02-12 02:50:59 +13:00
Slava Pestov
fd11ad30dc
compiler.tree.propagation.inlining: remove some unused words
2010-02-11 16:29:48 +13:00
Slava Pestov
ca9852b541
compiler.tree.propagation.call-effect: hack so that call( doesn't clear the last error
2010-02-03 23:11:33 +13:00
Slava Pestov
c3f66d49a3
Better error message for call( when quotation has the wrong effect
2010-02-03 23:11:25 +13:00
Slava Pestov
8f763fe8da
Merge git://github.com/littledan/Factor into littledan
2010-01-31 02:54:58 +13:00
Slava Pestov
65ba4b58d9
stack-checker.dependencies: add tuple layout dependencies for use by 'new' and 'boa'
2010-01-30 09:29:00 +13:00
Slava Pestov
13f920babb
Add some utility words to stack-checker.dependencies in preparation for a refactoring
2010-01-30 09:28:59 +13:00
Slava Pestov
468a3a74f1
Re-defining a tuple class now invalidates cached quotation stack effects
2010-01-30 09:28:59 +13:00
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
Daniel Ehrenberg
8837fe5792
Tests for propagation additions; making fixnum-bit? inline
2010-01-25 20:15:17 -06:00
Daniel Ehrenberg
8b04f0f417
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
basis/compiler/tree/propagation/transforms/transforms.factor
2010-01-20 00:15:55 -06:00
Daniel Ehrenberg
2e5f16da00
Adding compiler transforms in propagation
2010-01-20 00:10:49 -06: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
Joe Groff
228ad950bb
%test-vector instruction for vany?, vall?, vnone?
2009-10-01 15:35:38 -05:00
Joe Groff
94070c11aa
%compare-vector instruction (only does v= for now)
2009-10-01 14:31:37 -05:00
Joe Groff
3ba79be651
Revert "add a %blend-vector intrinsic for v?"
...
This reverts commit 21e4b28b67 .
2009-09-30 23:40:37 -05:00
Joe Groff
21e4b28b67
add a %blend-vector intrinsic for v?
2009-09-30 23:03:59 -05:00
Slava Pestov
1c8662ce4a
math.vectors.simd: add vbroadcast intrinsic, fix integer overflow issues
2009-09-29 22:58:20 -05:00
Slava Pestov
2b13245704
math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles
2009-09-29 04:48:11 -05:00
Slava Pestov
a6e8277b2c
math.vectors.simd: add vshuffle intrinsic
2009-09-28 23:12:13 -05:00
Slava Pestov
ba029a88ff
io.mmap: fix obsolete tests and get code to inline better
2009-09-28 03:18:27 -05:00
Slava Pestov
10c5fe5933
math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics
2009-09-28 02:17:46 -05:00
Slava Pestov
e5b94b11d7
Some fixes and cleanups in math.vectors
...
- Tighten up type inference for operations on complex float arrays
- Fix v. to have correct behavior with complex numbers
- Rename v<< and v>> to vlshift and vrshift to avoid clashing with v>> accessor
2009-09-24 06:58:33 -05:00
Slava Pestov
a4e1d5511e
Tweaks to reduce deployed image size
2009-09-24 06:24:43 -05:00
Slava Pestov
24039cb56a
math.vectors.simd: add v<< and v>> intrinsics for bitwise shifts on elements
2009-09-24 03:32:39 -05:00
Slava Pestov
abac963882
math.vectors.simd: new operations: vabs vsqrt vbitand vbitor vbitxor
2009-09-23 02:47:14 -05:00
Slava Pestov
fda8870848
Merge branch 'master' into integer-simd
2009-09-22 20:21:40 -05:00
Slava Pestov
f03b54287e
compiler.tree.propagation.branches: M: #phi propagate-around was unnecessary
2009-09-22 17:56:50 -05:00
Daniel Ehrenberg
2019c0a747
Merge branch 'master' of git://factorcode.org/git/factor into constraints
2009-09-22 16:09:33 -05:00
Daniel Ehrenberg
198fdc82ab
Fixing failing unit tests in compiler.tree.propagation due to constraints
2009-09-22 16:01:14 -05:00
Slava Pestov
e6cddf1fa7
Merge branch 'master' of git://factorcode.org/git/factor into integer-simd
2009-09-21 17:58:24 -05:00