Slava Pestov
82fb1879af
Debugging untagged fixnums
2010-05-03 17:34:02 -04:00
Slava Pestov
5d3a7a7362
Untagged fixnums work in progress
2010-05-03 17:34:02 -04:00
Slava Pestov
503c0fcfde
compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies
2010-05-03 17:34:01 -04:00
Erik Charlebois
baab8c060d
Remove ENUM: f and replace uses with CONSTANTs.
...
Fix bootstrap and load-all errors from enum classes.
2010-04-19 20:08:40 -07:00
Joe Groff
4bc915d526
C-ENUM: -> ENUM:
2010-04-19 20:07:16 -07:00
Slava Pestov
d143aa64b2
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
2517b2fc2b
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
8f0739197e
compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch
2010-04-18 21:42:45 -05:00
Slava Pestov
bc9241d2b7
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
2aaf24412a
compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search
2010-04-18 21:42:45 -05:00
Daniel Ehrenberg
fbb1eb98a9
Improving dependence graph correctness
2010-04-18 19:59:52 -05:00
Daniel Ehrenberg
865285cdd7
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-17 14:05:40 -05:00
Slava Pestov
c1a870fe72
sequences: remove stupid <flat-slice> word
2010-04-17 00:58:30 -05:00
Daniel Ehrenberg
6892bac1ca
Making some scheduling assertions only run in unit tests
2010-04-15 17:36:43 -05:00
Daniel Ehrenberg
74de7d0e2a
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-15 17:28:53 -05:00
Slava Pestov
bd4e920995
compiler.tree.propagation: fix scalability issue with constraints
2010-04-14 17:19:26 -07:00
Slava Pestov
4f16212840
compiler.tests.redefine23: test wasn't testing anything
2010-04-13 00:56:48 -07:00
Slava Pestov
88f627a402
compiler.tests.alien: fix tests on Win64
2010-04-13 01:24:04 -05:00
Slava Pestov
918b202b9a
compiler.tests.alien: get it passing when VM is compiled with MINGW by disabling certain tests and using the MINGW ABI for others, and fix fastcall alien-indirect tests for name decoration
2010-04-12 18:14:18 -05:00
Slava Pestov
67e24b1d2a
compiler.codegen: need to do name decoration with fastcall as well
2010-04-12 18:10:25 -05:00
Slava Pestov
1434a305c8
vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this
2010-04-12 14:22:41 -07:00
Slava Pestov
145e6428ba
Fixing load errors
2010-04-10 17:24:44 -07:00
Slava Pestov
0aab7aa872
compiler.tests.alien: fix typo
2010-04-10 00:41:20 -07:00
Joe Groff
3e0d86f355
Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols
...
Conflicts:
basis/compiler/tests/alien.factor
2010-04-06 12:30:15 -07:00
Daniel Ehrenberg
aae69daa96
Fixing USING: line of scheduling to remove unnecessary vocabs
2010-04-05 15:45:06 -05:00
Daniel Ehrenberg
e22f66daf4
Scheduling has to come before representation selection, since the latter inserts memory operations
2010-04-05 00:24:12 -05:00
Daniel Ehrenberg
601b6f8457
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-04 19:43:15 -05:00
Slava Pestov
74640b7f71
Get green threads working on Windows
...
- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image
2010-04-03 20:24:33 -04:00
Joe Groff
1c5f718e80
add tests for fastcall callbacks
2010-04-02 00:23:39 -07:00
Joe Groff
47f3ace5ac
test fastcall indirect struct return
2010-04-02 00:00:34 -07:00
Joe Groff
43d73dcd4d
remove fastcall struct param tests because GCC appears to behave differently from VC++ here and again, who cares
2010-04-01 23:54:08 -07:00
Joe Groff
5dcfb383a6
add tests for struct returns from fastcall
2010-04-01 23:52:56 -07:00
Joe Groff
69abcd4b9b
test indirect fastcalls
2010-04-01 23:43:55 -07:00
Joe Groff
fd0569e553
compiler.tests.alien: add back fastcall float and struct tests
2010-04-01 22:47:16 -07:00
Joe Groff
88fbcba067
flatten non-integral types to (stack-value) on x86.32
2010-04-01 20:56:43 -07:00
Joe Groff
88da92543c
add a test that multiple stdcalls or fastcalls in the same word behave correctly
2010-04-01 18:48:12 -07:00
Joe Groff
553b9fcd93
make "fastcall" symbol private since it doesn't really work in all cases
2010-04-01 18:34:15 -07:00
Joe Groff
9c1a9158be
retire mixed int/float fastcall tests because who cares
2010-04-01 18:25:56 -07:00
Slava Pestov
eceabbc57e
compiler: new set-special-object intrinsic; more efficient special-object intrinsic
2010-04-01 20:09:14 -04:00
Joe Groff
c743608456
check gc after fastcall ffi tests like stdcall tests
2010-04-01 14:15:34 -07:00
Joe Groff
a191937c47
typos in ffi tests
2010-04-01 03:02:36 -07:00
Joe Groff
4fd61f0b5c
cpu.architecture: alter param-regs to take abi as an (ignored for now) argument
2010-04-01 02:53:40 -07:00
Joe Groff
fca8ba3d0a
add fastcall functions to ffi tests
2010-04-01 02:22:42 -07:00
Joe Groff
f3dd625de6
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
65c3259761
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
d98e752199
compiler: add intrinsic for context-object primitive
2010-03-27 02:56:11 -04:00
Slava Pestov
e6a15c0b33
compiler.tree.propagation: don't constant-fold boa constructors of identity-tuple subclasses
2010-03-26 22:44:56 -04:00
Slava Pestov
560c119cd2
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Daniel Ehrenberg
31f23c8eba
Scheduling uses sets where appropriate
2010-03-24 10:38:52 -04:00
Daniel Ehrenberg
12db8a6c77
Merge branch 's3' of git://github.com/littledan/Factor into s3
2010-03-23 16:46:28 -04:00
Joe Groff
1d4d6f4ce8
factor code duplication in compiler.cfg.intrinsics.simd.backend
2010-03-20 10:57:04 -07:00
Joe Groff
f82a368602
compiler.cfg.intrinsics.simd.backend: eliminate duplicated work done on successful insn sequence
2010-03-20 02:51:49 -07:00
Joe Groff
ee4913702f
compiler.cfg.intrinsics.simd.backend: use less grotesque metaprogramming to determine simd instruction sequences
2010-03-20 02:16:50 -07:00
Slava Pestov
6aee6b3adc
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
2010-03-18 22:06:00 +13:00
Daniel Ehrenberg
248730d39f
Cleaning up compiler.cfg.ssa.construction
2010-03-17 20:12:10 -04:00
Daniel Ehrenberg
512fe14e4e
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
f24a74f66c
Merge branch 'master' into row-polymorphism
2010-03-10 11:48:41 -08:00
Slava Pestov
7744559a46
compiler.tree.propagation: clean up
2010-03-10 15:15:49 +13:00
Daniel Ehrenberg
8e227bc874
Propagation tracks length just like any other read-only slot
2010-03-09 15:58:44 -05:00
Joe Groff
bcbc7632c6
fix stack effects in compiler tests
2010-03-08 23:46:20 -08:00
Joe Groff
191ac353fd
generalize stack effects so we can bootstrap with the stricter stack effect checking
2010-03-08 23:38:10 -08:00
Joe Groff
af57d4dfa9
fix ... in compiler.cfg.linearization
2010-03-05 14:27:58 -08:00
Joe Groff
a3033e885a
make effect variables part of effect syntax, stored out of band in effect tuple
2010-03-05 13:30:10 -08:00
Daniel Ehrenberg
e3481a7ed7
compiler.cfg.def-use uses sets
2010-03-02 19:23:34 -05:00
Daniel Ehrenberg
1e5f202998
Maing vocabs.hierarchy use sets; modifying alias analysis's use of sets
2010-02-28 22:55:22 -05:00
Daniel Ehrenberg
1217dc9c6e
Making alias analysis use sets
2010-02-28 22:42:10 -05:00
Daniel Ehrenberg
434605c0b5
Changing some uses of prune to use members
2010-02-27 13:14:03 -05:00
Daniel Ehrenberg
7cd3360cdd
Fixing ambiguity between sets and namespaces in many unit tests and furnace.auth
2010-02-26 17:17:40 -05:00
Daniel Ehrenberg
6298203b4c
Making all of basis and extra unambiguous for sets/namespaces
2010-02-26 16:28:38 -05:00
Daniel Ehrenberg
7074979745
Moving new-sets to sets
2010-02-26 16:01:01 -05:00
Daniel Ehrenberg
a72e2cc96c
Finishing converting compiler.cfg.ssa.construction.tdmsc to new-sets
2010-02-26 13:53:20 -05:00
Daniel Ehrenberg
73a990a4b8
Making it fast to create a new hashset
2010-02-26 13:24:26 -05:00
Daniel Ehrenberg
b76c82048d
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
Daniel Ehrenberg
a3c168cb5e
Merge branch 'master' of git://factorcode.org/git/factor into bags
2010-02-26 10:00:57 -05:00
Daniel Ehrenberg
aa438efc35
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-02-24 21:38:24 -06:00
Daniel Ehrenberg
2034e1ef05
Fewer unnecessary dependence edges between stack operations, implemented by reviving stack height normalization. Now, 40% of spills and reloads are eliminated in total
2010-02-24 14:20:43 -06:00
Joe Groff
4cfa1a6c77
rename current string-mangling "char*" to "c-string". char* is now just a boring old pointer to char
2010-02-23 11:42:02 -08:00
Slava Pestov
ae25cfe712
Get foldable and flushable declarations working on typed words
2010-02-24 00:16:55 +13:00
Slava Pestov
eb3f8632dd
stack-checker.alien: now that C types are words, the compiler can add dependencies on them when compiling alien words. This triggers the necessary recompilation when C types are redefined
2010-02-22 21:32:41 +13:00
Slava Pestov
6501480a0e
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
Daniel Ehrenberg
04878057af
Compiler.cfg.{dce,linearization} use new-sets
2010-02-16 15:48:07 -06:00
Daniel Ehrenberg
30cc248bb3
Bit sets use new new set protocol, and compiler.cfg.ssa.construction.tdmsc is updated for it
2010-02-16 15:14:32 -06:00
Slava Pestov
b963d56aac
compiler.tree.escape-analysis: fix bug that comes up when inheritance is used
2010-02-16 14:44:13 +13:00
Slava Pestov
64a37d2db6
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
Daniel Ehrenberg
6d36bfd104
Modifying dependence graph construction for faster compile time
2010-02-13 21:35:40 -06:00
Daniel Ehrenberg
7565588f4f
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-02-13 20:26:14 -06:00
Daniel Ehrenberg
4f7fd41cf2
Using original instruction order as a tiebreaker in scheduling
2010-02-11 23:12:17 -06:00
Daniel Ehrenberg
5a3d0fb883
Scheduling doesn't have such redundant data structures anymore
2010-02-11 21:21:22 -06:00
Daniel Ehrenberg
a6f255a985
Scheduling schedules more BBs--it was leaving out some ones that shouldn't've been. Now it's almost 30% of spills and reloads that are eliminated
2010-02-11 21:02:02 -06:00
Slava Pestov
a118f208dc
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
Daniel Ehrenberg
edae2fa2d3
Making the fan-in tree generation work. Finally: a 20% reduction in spills and reloads on x86!
2010-02-11 00:19:53 -06:00
Daniel Ehrenberg
6fe9aa50f7
Working on fixing scheduling
2010-02-10 22:36:26 -06:00
Daniel Ehrenberg
04946dcddd
A first attempt at implementing Vivek Sarkar's algorithm for scheduling for register pressure
2010-02-10 21:43:30 -06:00
Slava Pestov
57ba1aff60
compiler.tree.propagation.inlining: remove some unused words
2010-02-11 16:29:48 +13:00
Slava Pestov
35acd71551
compiler.units: fix bug that came up recently with nested compilation units
2010-02-04 03:20:48 +13:00
Slava Pestov
8d3c11c176
compiler: remove some unnecessary complexity
2010-02-04 01:36:52 +13:00
Slava Pestov
c011380a19
compiler: tweak recompilation logic. speeds up '"terrain" require' by 8 seconds
2010-02-04 01:09:57 +13:00
Slava Pestov
662eba7a67
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
7de81976a5
Revert "macros: macro body is now defined in its own subword, for compile-time stack effect checking"
...
This reverts commit 24de7c52f0c3f21cfcdb80235cac7296b0401c85.
2010-02-03 23:11:29 +13:00
Slava Pestov
3259ef4bec
vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units
2010-02-03 23:11:28 +13:00
Slava Pestov
55a89ec9c2
Better error message for call( when quotation has the wrong effect
2010-02-03 23:11:25 +13:00
Slava Pestov
df55fed478
generic: rename method-body predicate class to method
2010-02-03 23:11:24 +13:00
Slava Pestov
b7fde7af27
macros: macro body is now defined in its own subword, for compile-time stack effect checking
2010-02-03 23:11:22 +13:00
Slava Pestov
bf05a901c4
Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI
2010-02-02 04:01:12 -06:00
Slava Pestov
e7de95e72b
compiler.crossref: clean up and fix bug with forgotten classes
2010-02-01 17:20:08 +13:00
Slava Pestov
8432f4c459
Fix a couple of unit tests that were relying on the old compiler crossref structures
2010-01-31 23:26:55 +13:00
Slava Pestov
c5c94ef1f9
compiler.cfg.intrinsics.simd: ignore dummy assert-positive word
2010-01-31 18:19:14 +13:00
Slava Pestov
5ed0bc72aa
Merge git://github.com/littledan/Factor into littledan
2010-01-31 02:54:58 +13:00
Slava Pestov
2c63161c84
stack-checker.dependencies: make conditional dependencies more robust
2010-01-31 01:55:35 +13:00
Slava Pestov
9bc4e662c6
compiler.crossref: word props were stored the wrong way round
2010-01-30 22:33:27 +13:00
Slava Pestov
6eceff6acb
compiler.crossref: cleanup
2010-01-30 21:14:40 +13:00
Slava Pestov
ea9dbf2ea1
compiler.crossref: more space-efficient storage of dependency information
2010-01-30 09:29:02 +13:00
Slava Pestov
fa4f7d8ccf
Clean up some code in preparation for a refactoring
2010-01-30 09:29:02 +13:00
Slava Pestov
015a9d365d
compiler.crossref: memoize dependency evaluation
2010-01-30 09:29:01 +13:00
Slava Pestov
a13c2fb856
compiler.crosssref: rename word property
2010-01-30 09:29:00 +13:00
Slava Pestov
6cc68e889e
stack-checker.dependencies: add tuple layout dependencies for use by 'new' and 'boa'
2010-01-30 09:29:00 +13:00
Slava Pestov
09ead56652
Re-work flushed dependencies into new compiler cross-referencing framework
2010-01-30 09:29:00 +13:00
Slava Pestov
c058343167
Add some utility words to stack-checker.dependencies in preparation for a refactoring
2010-01-30 09:28:59 +13:00
Slava Pestov
26f311279c
Re-defining a tuple class now invalidates cached quotation stack effects
2010-01-30 09:28:59 +13:00
Slava Pestov
c027046857
New 'conditional dependency' mechanism for more accurate recording of recompilation information
2010-01-30 09:28:57 +13:00
Slava Pestov
817bc02392
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
ab428fc259
Code cleanups
2010-01-30 09:28:56 +13:00
Slava Pestov
f031a97084
Work in progress: record constant-folds of predicate words, and call-next-method invocations, in the same way that method inlining are recorded, for greater recompilation accuracy
2010-01-30 09:28:56 +13:00
Slava Pestov
bd479db2f8
Fix regression when forgetting classes
2010-01-30 09:28:55 +13:00
Slava Pestov
830e25c70b
More changes so that mixins trigger even less recompilation
2010-01-30 09:28:53 +13:00
Slava Pestov
d58f73453f
Add test case for mixin bug Doug found, seems to be fixed now
2010-01-30 09:28:52 +13:00
Daniel Ehrenberg
19d551a544
Merge branch 'master' of git://factorcode.org/git/factor
2010-01-26 14:14:05 -06:00
Daniel Ehrenberg
52f2ac2bb9
Tests for propagation additions; making fixnum-bit? inline
2010-01-25 20:15:17 -06:00
Doug Coleman
afdb7f6329
remove a stray character
2010-01-22 15:07:01 -06:00
Doug Coleman
8c1d202b4c
Rename accumulator to collector, pusher to selector
2010-01-22 15:00:53 -06:00
Slava Pestov
098ef42202
compiler: fix docs
2010-01-23 00:46:04 +13:00
Slava Pestov
ea5e168d77
compiler.test: fix
2010-01-23 00:40:56 +13:00
Slava Pestov
f804c9c422
Move compile-call and related words only meant to be used for debugging to compiler.test
2010-01-23 00:39:56 +13:00
Daniel Ehrenberg
d3590ea210
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
aa1651032d
Adding compiler transforms in propagation
2010-01-20 00:10:49 -06:00
Slava Pestov
9a222a4163
compiler.tree.propagation.call-effect: eliminate some dispatch from call( expansion
2010-01-19 21:08:45 +13:00
Slava Pestov
5606825e8b
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
2010-01-19 20:00:33 +13:00
Slava Pestov
ac800e2396
compiler.tree.escape-analysis: make tests a bit more robust; a change to boa constructors recently meant dead curries were showing up on certain expansions, this was throwing off the escape-analysis test's unboxed allocation counting. Fix this by having the test run DCE first, and remove a few tests that no longer make sense now
2010-01-18 23:32:34 +13:00
Slava Pestov
637a77c018
Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types
2010-01-18 20:54:00 +13:00
Slava Pestov
3b5f7a9ecf
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
7155447aed
stack-checker: add inputs and outputs words, since 'infer (in>>|out>>) length' was coming up a lot
2010-01-15 08:04:14 +13:00
Doug Coleman
4c71d71907
random is generic now -- iota random -> random
2010-01-14 12:48:57 -06:00
Slava Pestov
df4fb4a3ee
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Slava Pestov
50d68c1b10
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
ce2487e6c0
compiler.codegen.fixup: cache symbol names, reducing image size by ~200Kb
2010-01-13 23:18:43 +13:00
Slava Pestov
47a5e96547
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
1c10196c43
Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side
2010-01-13 18:08:18 +13:00
Slava Pestov
988c8d0601
More PowerPC non-optimizing compiler backend fixes
2010-01-13 03:09:43 +13:00
Slava Pestov
235f3238f5
Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S
2010-01-07 17:39:22 +13:00
Slava Pestov
44a604fdbe
compiler.tree: remove some code duplication concerning #alien nodes
2010-01-07 16:06:07 +13:00
Slava Pestov
47c6197799
Update x86-32 for assembly entry point changes
2010-01-06 17:55:20 +13:00
Slava Pestov
36d2ac8921
vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64
2010-01-06 15:47:36 +13:00
Slava Pestov
ba5b90e063
Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
...
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Slava Pestov
e96404327e
Get optimizing compiler working without global register variables in VM
2009-12-22 15:42:49 +13:00
Slava Pestov
0068bce934
vm: big overhaul of non-optimizing compiler
...
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Joe Groff
3e40a36c50
fix simd tests
2009-12-05 17:17:16 -08:00
Joe Groff
104c29aabc
simd intrinsic implementation for v*high, v*hs+, vavg, and vsad
2009-12-05 14:52:18 -08:00
Joe Groff
412b9d0c7a
change compiler.cfg.intrinsics.simd tests to not use types and operations that depend on host cell size
2009-12-04 13:23:31 -08:00
Joe Groff
63b89c65f9
don't use intrinsics for simd vector element operations when the component size doesn't fit in a fixnum
2009-12-03 12:46:56 -08:00
Slava Pestov
73eb4c4531
Merge branch 'simd-cleanup' of git://factorcode.org/git/factor into simd-cleanup
2009-12-02 19:09:56 -05:00
Slava Pestov
eb840dcf41
RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further
2009-12-02 04:55:48 -06:00
Slava Pestov
68c09f0e93
Split literal table into literal and parameter tables, literal table is discarded after code block initialization
2009-12-02 04:28:15 -06:00
Joe Groff
67cc1c01be
Merge branch 'master' into simd-cleanup
2009-11-26 16:14:46 -08:00
Joe Groff
66d0cafa94
fix buggy simd intrinsics
2009-11-26 13:28:40 -08:00
Joe Groff
c916c7c856
don't try to rewrite redundant test-vector-exprs
2009-11-25 20:06:11 -08:00
Slava Pestov
bd02eef38e
Fix non-tail recursive inline recursive compilation
2009-11-25 19:12:09 -06:00
Joe Groff
50f7dff422
change name of 'unsign-rep' to more sensible 'signed-rep'
2009-11-24 22:44:12 -08:00
Joe Groff
c98eb84943
make math.vectors.simd tests pass again
2009-11-24 18:30:12 -08:00
Joe Groff
9c388bf781
update compiler.cfg.intrinsics.simd tests
2009-11-24 12:50:27 -08:00
Joe Groff
65d8060075
fix simd intrinsic compilation
2009-11-24 11:37:28 -08:00
Joe Groff
d94ffe6d78
scalar fallbacks for simd intrinsics
2009-11-23 21:24:55 -08:00
Slava Pestov
0612bc6177
Factor source files should not be executable
2009-11-21 17:50:43 -06:00
Joe Groff
152b0d2df5
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
Joe Groff
59d85f7ad6
fix primitive emit fallback for simd intrinsics
2009-11-18 21:29:51 -08:00
Joe Groff
a3e4ecfc7d
enable simd intrinsics and fix first-pass compiler errors
2009-11-18 20:32:05 -08:00
Joe Groff
6583875055
tests for all simd intrinsics
2009-11-18 18:20:58 -08:00
Joe Groff
f545c5d3e5
properly handle -vector-op and case words in simd.backend
2009-11-18 12:36:41 -08:00
Joe Groff
cd2cf91b95
start on tests for simd intrinsics
2009-11-17 11:13:16 -08:00
Slava Pestov
e30d275e41
compiler.cfg: 'basic-block new hashcode' should not throw an exception; fixes tools.deploy.test.11
2009-11-16 02:01:36 -06:00
Slava Pestov
361c38d5a1
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
d56afe9c3d
compilation fixes
2009-11-14 23:43:22 -06:00
Joe Groff
f544982fda
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
8a8699ac98
backend fixups
2009-11-14 20:59:03 -06:00
Slava Pestov
7377c96a21
compiler.tree.propagation.branches: fix recent constraints change
2009-11-13 07:16:41 -06:00
Slava Pestov
afecb9c758
Fixing call( inline caching
2009-11-13 04:32:33 -06:00
Slava Pestov
86da8ebed9
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
720c412431
compiler.tree.propagation: fix bug in constraints that caused retain stack overflow
2009-11-13 03:22:57 -06:00
Slava Pestov
ff25aaef54
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
7afea4c0ea
compiler.tree.propagation: implementing missing case in branch constraints
2009-11-12 17:24:11 -06:00
Slava Pestov
cba12eae37
Invalidate inline caches used by call( and execute( when words are redefined
2009-11-12 16:09:07 -06:00
Joe Groff
e323071c44
sever lingering dependencies on simd from compiler
2009-11-11 16:08:40 -06:00
Slava Pestov
41c17f0429
Fixing test failures
2009-11-11 02:40:24 -06:00
Slava Pestov
2afd7ce244
Faster identity-hashcode primitive; fast path now opencoded by the compiler
2009-11-11 02:27:19 -06:00
Joe Groff
eac9bacf40
backend for choosing available SIMD intrinsic implementations
2009-11-10 23:35:46 -06:00
Slava Pestov
064c00f78d
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
19283ed83d
compiler.cfg.intrinsics.slots: new implementation of value-tag
2009-11-10 17:30:27 -06:00
Slava Pestov
473cc7db4a
stack-checker: tighten some screws in error reporting
2009-11-09 00:17:24 -06:00
Joe Groff
788289e51e
Merge branch 'master' into simd-cleanup
2009-11-08 21:54:53 -06:00
Slava Pestov
cd2e226afa
stack-checker: split off stack-checker.dependencies from stack-checker.state
2009-11-08 20:34:46 -06:00
Slava Pestov
da041a0175
compiler.crossref: fix bugs
2009-11-08 06:22:39 -06:00
Slava Pestov
5d79450d9d
Use a more compact representation for "compiled-uses" and "compiled-generic-uses" word-props; reduces image size
2009-11-08 06:08:04 -06:00
Joe Groff
8894e9047c
Merge branch 'master' into simd-cleanup
2009-11-07 22:26:09 -06:00
Slava Pestov
279d1169d2
compiler: fix alien tests
2009-11-06 01:04:02 -06:00
Joe Groff
00ce8b6a33
deprimitivize tuck and put it to pasture
2009-11-05 22:47:05 -06:00
Daniel Ehrenberg
d2fe75276e
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
75d04922b9
Merge branch 'master' into simd-cleanup
...
Conflicts:
basis/math/vectors/simd/functor/functor.factor
2009-11-05 11:27:08 -06:00
Joe Groff
4d54f27cd1
more intrinsic madness
2009-11-05 09:52:57 -06:00
Slava Pestov
8c4ad9bf18
compiler: fix intrinsics tests on 32-bit
2009-11-04 18:28:46 -06:00
Joe Groff
f6643a1c72
change ##horizontal-add-vector insn to better match what the HADD SSE instructions do (add adjacent pairs, pack results)
2009-11-04 12:18:01 -06:00
Slava Pestov
3c4c05e915
compiler.cfg.intrinsics.allot: fix inline byte array allocation on 32-bit platforms
2009-11-03 23:44:20 -06:00
Slava Pestov
109aa88b06
compiler: update unit tests for 4-bit tag change
2009-11-03 21:40:29 -06:00
Joe Groff
bd77633d5b
new intrinsic generators, pt1
2009-11-03 21:38:45 -06:00
Slava Pestov
51e9a891a8
cpu.x86: update %box-displaced-alien for introduction of address field
2009-11-03 03:17:43 -06:00
Slava Pestov
91ccc30a54
Merge branch 'master' into new_gc
2009-11-02 20:34:13 -06:00
Slava Pestov
0a15ae4d6b
compiler.cfg.intrinsics: uncomment line commented out by mistake
2009-11-02 20:33:14 -06:00
Slava Pestov
495f776d54
Merge branch 'master' into new_gc
2009-11-02 20:11:43 -06:00
Slava Pestov
8bd2273e44
compiler.cfg: don't generate useless methods in instruction meta-programming. reduces bootstrap time
2009-11-02 20:11:29 -06:00
Slava Pestov
a3b5c07e80
Minor bug fixes for 4-bit tags
2009-11-02 17:41:36 -06:00
Joe Groff
e36eb438fa
move all simd intrinsics to compiler.cfg.intrinsics.simd, and only load it when math.vectors.simd is loaded
2009-11-02 15:17:34 -06:00
Joe Groff
42493b9778
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
e4ad642134
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
Slava Pestov
37abac7407
Merge branch 'master' into new_gc
2009-10-30 21:04:37 -05:00
Joe Groff
3f15e028f7
exile roll and -roll to basis/shuffle and mark them deprecated
2009-10-30 17:11:45 -05:00
Slava Pestov
6f9336c29e
Merge branch 'master' into new_gc
2009-10-30 03:03:05 -05:00
Joe Groff
1cf45abf06
Merge branch 'master' of git://factorcode.org/git/factor
2009-10-30 00:42:37 -05:00
Joe Groff
b858860a67
add ##shl-vector-imm and ##shr-vector-imm insn variants. use merge/shr instead of compare/merge to do signed unpacks
2009-10-30 00:41:19 -05:00
Doug Coleman
1d12a6707d
sigma -> map-sum
2009-10-29 14:34:04 -05:00
Doug Coleman
17f0a5d41a
Merge branch 'master' of git://factorcode.org/git/factor
2009-10-28 17:26:23 -05:00
Doug Coleman
e376a0ece2
(normalize-path) -> absolute-path, canonicalize-path -> resolve-symlinks
2009-10-28 17:25:50 -05:00
Joe Groff
3fbe722561
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
Joe Groff
6e1bffb1c5
update existing code to use :> ( ) when possible
2009-10-28 16:11:33 -05:00
Doug Coleman
bd13e018dd
memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
2009-10-28 15:02:00 -05:00
Doug Coleman
1476cdb974
reverse-here -> reverse!
2009-10-28 14:40:15 -05:00
Doug Coleman
7ce4b746e5
parsed -> suffix!, add append!
2009-10-28 13:38:27 -05:00
Joe Groff
2ecf3fb568
fix load errors from bootstrapping
2009-10-28 12:51:03 -05:00
Slava Pestov
299b5b0f6c
filter-here -> filter!
2009-10-28 00:44:05 -05:00
Slava Pestov
50f5c3d116
remq -> remove-eq, delq -> remove-eq!
2009-10-28 00:23:08 -05:00
Slava Pestov
951e3e9c83
delete-nth -> remove-nth!
2009-10-27 23:41:57 -05:00
Slava Pestov
08e7d25dc5
change-each -> map!, deep-change-each -> deep-map!
2009-10-27 22:32:56 -05:00
Joe Groff
935c0797c3
update existing code for [let change
2009-10-27 22:05:37 -05:00
Joe Groff
d17ef38007
update compiler.tree.cleanup test
2009-10-26 23:01:35 -05:00
Slava Pestov
9abe29bebc
Merge branch 'master' into new_gc
2009-10-24 01:31:15 -05:00
Slava Pestov
0c431f1222
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
e46259bd33
compiler.tree.propagation.transforms: fix problem with 'shift' transform when input was a bignum
2009-10-23 07:50:56 -05:00
Slava Pestov
64ff812611
Merge branch 'master' into new_gc
2009-10-23 03:56:46 -05:00
Slava Pestov
e8fd85437b
compiler: fix stack effect inference bug discovered by x6j8x; it was possible to define a word which did not compile but could be called anyway
2009-10-23 03:27:25 -05:00
Slava Pestov
3394309659
Merge branch 'master' into new_gc
2009-10-22 05:40:57 -05:00
Joe Groff
c3b8847936
update a bunch of alien-callbacks and alien-indirects to use c-type words
2009-10-21 21:10:11 -05:00
Joe Groff
7fac3682a6
update some naked alien-invokes to use c-type words
2009-10-21 18:44:00 -05:00
Joe Groff
8a6b0a1453
generate unsigned vector comparison fallbacks using min/max or xor/signed compare
2009-10-20 22:30:57 -05:00