Slava Pestov
31cd3ff574
compiler.cfg.value-numbering: more cleanups
2010-05-03 17:34:10 -04:00
Slava Pestov
7982a3f92e
compiler.cfg.value-numbering: identify VNs with their representative vregs, eliminating the vn>vreg hash
2010-05-03 17:34:10 -04:00
Slava Pestov
a4c5525a56
compiler.cfg.value-numbering: maintain a VN to instruction mapping. This eliminates all instances of expression inspection, allowing the auto-generated expression classes to be removed
2010-05-03 17:34:09 -04:00
Slava Pestov
2764cc81e2
compiler.cfg.value-numbering: remove constant -vs- literal distinction
2010-05-03 17:34:09 -04:00
Slava Pestov
c400c7e78a
compiler.cfg.ssa.liveness: remove unused pass
2010-05-03 17:34:08 -04:00
Slava Pestov
b9e27d1c82
compiler.cfg.builder: fix unit tests
2010-05-03 17:34:08 -04:00
Slava Pestov
2b50b9b315
compiler.cfg.value-numbering: merge 'simplify' pass into 'rewrite'
2010-05-03 17:34:08 -04:00
Slava Pestov
80c8a7154d
compiler.cfg: add ##load-memory and ##store-memory instructions implementing complex addressing modes, and associated value numbering optimizations
2010-05-03 17:34:07 -04:00
Slava Pestov
505b34a611
compiler.cfg.value-numbering: add slot addressing rewrite rule to eliminate a redundant ##add-imm from array-nth and set-array-nth
2010-05-03 17:34:07 -04:00
Slava Pestov
59fe281799
compiler.cfg: more flexible addressing for ##slot and ##set-slot
2010-05-03 17:34:06 -04:00
Slava Pestov
becd957d29
compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm
2010-05-03 17:34:06 -04:00
Slava Pestov
3c965afd10
compiler.cfg: remove ##set-string-nth-fast instruction since it can be expressed just as efficiently using other instructions
2010-05-03 17:34:04 -04:00
Slava Pestov
65e35b842f
compiler.tests.low-level-ir: update for recent changes
2010-05-03 17:34:04 -04:00
Slava Pestov
12907654d5
compiler.cfg.value-numbering: fix compile error
2010-05-03 17:34:04 -04:00
Slava Pestov
c94666073b
compiler.cfg.representations: peephole optimizations are used to simplify the case where the input to a ##shl-imm or ##sar-imm needs to be untagged
2010-05-03 17:34:03 -04:00
Slava Pestov
6403572286
compiler.cfg.value-numbering: new optimizations; reassociation for shifts and redistribution for shifts/multiplies over additions/subtractions
2010-05-03 17:34:02 -04:00
Slava Pestov
f000bb4bd5
compiler.cfg.instructions: more typos
2010-05-03 17:34:02 -04:00
Slava Pestov
80558a93fa
Debugging untagged fixnums
2010-05-03 17:34:02 -04:00
Slava Pestov
6fdcd9fb02
Untagged fixnums work in progress
2010-05-03 17:34:02 -04:00
Slava Pestov
19412e4ad1
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
d44e470416
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
5aecd92c37
C-ENUM: -> ENUM:
2010-04-19 20:07:16 -07: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
dbd7489894
compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch
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
c4cf2a4085
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
904c9f3b26
Improving dependence graph correctness
2010-04-18 19:59:52 -05:00
Daniel Ehrenberg
24756500d8
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-17 14:05:40 -05:00
Slava Pestov
05dba2ba81
sequences: remove stupid <flat-slice> word
2010-04-17 00:58:30 -05:00
Daniel Ehrenberg
d3a50883ab
Making some scheduling assertions only run in unit tests
2010-04-15 17:36:43 -05:00
Daniel Ehrenberg
1e1614eda9
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-15 17:28:53 -05:00
Slava Pestov
07d6a1f20f
compiler.tree.propagation: fix scalability issue with constraints
2010-04-14 17:19:26 -07:00
Slava Pestov
98ff114e52
compiler.tests.redefine23: test wasn't testing anything
2010-04-13 00:56:48 -07:00
Slava Pestov
91e8635ccd
compiler.tests.alien: fix tests on Win64
2010-04-13 01:24:04 -05:00
Slava Pestov
00a5108b86
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
df0f21c48d
compiler.codegen: need to do name decoration with fastcall as well
2010-04-12 18:10:25 -05:00
Slava Pestov
3a3b50327f
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
8e1afbd650
Fixing load errors
2010-04-10 17:24:44 -07:00
Slava Pestov
fa810bc3b4
compiler.tests.alien: fix typo
2010-04-10 00:41:20 -07:00
Joe Groff
3b4f8758b5
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
19b7215897
Fixing USING: line of scheduling to remove unnecessary vocabs
2010-04-05 15:45:06 -05:00
Daniel Ehrenberg
ba837da095
Scheduling has to come before representation selection, since the latter inserts memory operations
2010-04-05 00:24:12 -05:00
Daniel Ehrenberg
4cc50281c1
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-04-04 19:43:15 -05:00
Slava Pestov
cdc4fb3b62
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
e2e562ab05
add tests for fastcall callbacks
2010-04-02 00:23:39 -07:00
Joe Groff
8384a9de68
test fastcall indirect struct return
2010-04-02 00:00:34 -07:00
Joe Groff
abfaabea5d
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
22bba39a75
add tests for struct returns from fastcall
2010-04-01 23:52:56 -07:00
Joe Groff
6d9d5df8e1
test indirect fastcalls
2010-04-01 23:43:55 -07:00
Joe Groff
a1ea6729ae
compiler.tests.alien: add back fastcall float and struct tests
2010-04-01 22:47:16 -07:00
Joe Groff
e23e035b66
flatten non-integral types to (stack-value) on x86.32
2010-04-01 20:56:43 -07:00
Joe Groff
5739dbd6bb
add a test that multiple stdcalls or fastcalls in the same word behave correctly
2010-04-01 18:48:12 -07:00
Joe Groff
d6ad21bcc6
make "fastcall" symbol private since it doesn't really work in all cases
2010-04-01 18:34:15 -07:00
Joe Groff
db1f454cf0
retire mixed int/float fastcall tests because who cares
2010-04-01 18:25:56 -07:00
Slava Pestov
4f585f991d
compiler: new set-special-object intrinsic; more efficient special-object intrinsic
2010-04-01 20:09:14 -04:00
Joe Groff
8c5b45694e
check gc after fastcall ffi tests like stdcall tests
2010-04-01 14:15:34 -07:00
Joe Groff
202b62add9
typos in ffi tests
2010-04-01 03:02:36 -07:00
Joe Groff
ba062c1e5f
cpu.architecture: alter param-regs to take abi as an (ignored for now) argument
2010-04-01 02:53:40 -07:00
Joe Groff
7296e27e23
add fastcall functions to ffi tests
2010-04-01 02:22:42 -07:00
Joe Groff
1d06be5021
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
d951be1832
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
b84b1423d9
compiler: add intrinsic for context-object primitive
2010-03-27 02:56:11 -04: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
Slava Pestov
adeb6fb68f
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Daniel Ehrenberg
802ce4580b
Scheduling uses sets where appropriate
2010-03-24 10:38:52 -04:00
Daniel Ehrenberg
6f9d3389e2
Merge branch 's3' of git://github.com/littledan/Factor into s3
2010-03-23 16:46:28 -04:00
Joe Groff
ce605b2739
factor code duplication in compiler.cfg.intrinsics.simd.backend
2010-03-20 10:57:04 -07:00
Joe Groff
6e1a424614
compiler.cfg.intrinsics.simd.backend: eliminate duplicated work done on successful insn sequence
2010-03-20 02:51:49 -07:00
Joe Groff
15a7e9ef54
compiler.cfg.intrinsics.simd.backend: use less grotesque metaprogramming to determine simd instruction sequences
2010-03-20 02:16:50 -07:00
Slava Pestov
af573bd022
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
8530ba467e
Cleaning up compiler.cfg.ssa.construction
2010-03-17 20:12:10 -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
13cf49c45c
fix stack effects in compiler tests
2010-03-08 23:46:20 -08:00
Joe Groff
d4a0a69eb1
generalize stack effects so we can bootstrap with the stricter stack effect checking
2010-03-08 23:38:10 -08:00
Joe Groff
8d274e851a
fix ... in compiler.cfg.linearization
2010-03-05 14:27:58 -08: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
70c90c04fe
compiler.cfg.def-use uses sets
2010-03-02 19:23:34 -05:00
Daniel Ehrenberg
84d6cf5d7b
Maing vocabs.hierarchy use sets; modifying alias analysis's use of sets
2010-02-28 22:55:22 -05:00
Daniel Ehrenberg
d797e8d29e
Making alias analysis use sets
2010-02-28 22:42:10 -05:00
Daniel Ehrenberg
bf73129238
Changing some uses of prune to use members
2010-02-27 13:14:03 -05:00
Daniel Ehrenberg
2b5af07494
Fixing ambiguity between sets and namespaces in many unit tests and furnace.auth
2010-02-26 17:17:40 -05:00
Daniel Ehrenberg
142f530f1b
Making all of basis and extra unambiguous for sets/namespaces
2010-02-26 16:28:38 -05:00
Daniel Ehrenberg
0f0571e48a
Moving new-sets to sets
2010-02-26 16:01:01 -05:00
Daniel Ehrenberg
ab81eb7054
Finishing converting compiler.cfg.ssa.construction.tdmsc to new-sets
2010-02-26 13:53:20 -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
Daniel Ehrenberg
232f90443f
Merge branch 'master' of git://factorcode.org/git/factor into bags
2010-02-26 10:00:57 -05:00
Daniel Ehrenberg
e4198ad551
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-02-24 21:38:24 -06:00
Daniel Ehrenberg
02d2d8eba5
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
96ab4492d2
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
daf2e5270c
Get foldable and flushable declarations working on typed words
2010-02-24 00:16:55 +13:00
Slava Pestov
ad951c85ae
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
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
Daniel Ehrenberg
fd7bcd35ea
Compiler.cfg.{dce,linearization} use new-sets
2010-02-16 15:48:07 -06:00
Daniel Ehrenberg
ef281f1921
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
4fa46fba2d
compiler.tree.escape-analysis: fix bug that comes up when inheritance is used
2010-02-16 14:44:13 +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
Daniel Ehrenberg
84e386c3fc
Modifying dependence graph construction for faster compile time
2010-02-13 21:35:40 -06:00
Daniel Ehrenberg
dd92b12a7c
Merge branch 'master' of git://factorcode.org/git/factor into s3
2010-02-13 20:26:14 -06:00
Daniel Ehrenberg
5e6ae48adf
Using original instruction order as a tiebreaker in scheduling
2010-02-11 23:12:17 -06:00
Daniel Ehrenberg
b4a668d41f
Scheduling doesn't have such redundant data structures anymore
2010-02-11 21:21:22 -06:00
Daniel Ehrenberg
95f860774f
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
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
Daniel Ehrenberg
731cdd6747
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
29d44075e4
Working on fixing scheduling
2010-02-10 22:36:26 -06:00
Daniel Ehrenberg
d350b54325
A first attempt at implementing Vivek Sarkar's algorithm for scheduling for register pressure
2010-02-10 21:43:30 -06:00
Slava Pestov
fd11ad30dc
compiler.tree.propagation.inlining: remove some unused words
2010-02-11 16:29:48 +13:00
Slava Pestov
410c501b76
compiler.units: fix bug that came up recently with nested compilation units
2010-02-04 03:20:48 +13:00
Slava Pestov
80f604ac73
compiler: remove some unnecessary complexity
2010-02-04 01:36:52 +13:00
Slava Pestov
ffa3223f87
compiler: tweak recompilation logic. speeds up '"terrain" require' by 8 seconds
2010-02-04 01:09:57 +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
edbb980e3f
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
d19709c188
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
c3f66d49a3
Better error message for call( when quotation has the wrong effect
2010-02-03 23:11:25 +13:00
Slava Pestov
29e1d268b7
generic: rename method-body predicate class to method
2010-02-03 23:11:24 +13:00
Slava Pestov
0ff526f478
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
83a2de6565
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
eec325b4a6
compiler.crossref: clean up and fix bug with forgotten classes
2010-02-01 17:20:08 +13:00
Slava Pestov
7f664a6387
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
8a8c47ab1d
compiler.cfg.intrinsics.simd: ignore dummy assert-positive word
2010-01-31 18:19:14 +13:00
Slava Pestov
8f763fe8da
Merge git://github.com/littledan/Factor into littledan
2010-01-31 02:54:58 +13:00
Slava Pestov
8e2e869ec5
stack-checker.dependencies: make conditional dependencies more robust
2010-01-31 01:55:35 +13:00
Slava Pestov
5753d76c98
compiler.crossref: word props were stored the wrong way round
2010-01-30 22:33:27 +13:00
Slava Pestov
351c68094c
compiler.crossref: cleanup
2010-01-30 21:14:40 +13:00
Slava Pestov
93c2428cf4
compiler.crossref: more space-efficient storage of dependency information
2010-01-30 09:29:02 +13:00
Slava Pestov
39aa70aa88
Clean up some code in preparation for a refactoring
2010-01-30 09:29:02 +13:00
Slava Pestov
9b49424070
compiler.crossref: memoize dependency evaluation
2010-01-30 09:29:01 +13:00
Slava Pestov
21abe46414
compiler.crosssref: rename word property
2010-01-30 09:29:00 +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
df16224ab2
Re-work flushed dependencies into new compiler cross-referencing framework
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
Slava Pestov
1da446d8fc
Code cleanups
2010-01-30 09:28:56 +13:00
Slava Pestov
0738e85df1
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
9d207cc913
Fix regression when forgetting classes
2010-01-30 09:28:55 +13:00
Slava Pestov
ed7f8341e5
More changes so that mixins trigger even less recompilation
2010-01-30 09:28:53 +13:00
Slava Pestov
0a77399242
Add test case for mixin bug Doug found, seems to be fixed now
2010-01-30 09:28:52 +13:00
Daniel Ehrenberg
8f4bd0e7df
Merge branch 'master' of git://factorcode.org/git/factor
2010-01-26 14:14:05 -06:00
Daniel Ehrenberg
8837fe5792
Tests for propagation additions; making fixnum-bit? inline
2010-01-25 20:15:17 -06:00
Doug Coleman
7322c0a400
remove a stray character
2010-01-22 15:07:01 -06:00
Doug Coleman
8ae200d419
Rename accumulator to collector, pusher to selector
2010-01-22 15:00:53 -06:00
Slava Pestov
cf21edd415
compiler: fix docs
2010-01-23 00:46:04 +13:00
Slava Pestov
81967cab35
compiler.test: fix
2010-01-23 00:40:56 +13:00
Slava Pestov
0cbf9c9b50
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
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
88004434ec
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
2010-01-19 20:00:33 +13:00
Slava Pestov
e19c6fd76f
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
0165daf56c
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
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
ce05955693
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
7521807b55
random is generic now -- iota random -> random
2010-01-14 12:48:57 -06: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
1c9afb4ccf
compiler.codegen.fixup: cache symbol names, reducing image size by ~200Kb
2010-01-13 23:18:43 +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
790674cf89
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
5ef9fb5473
More PowerPC non-optimizing compiler backend fixes
2010-01-13 03:09:43 +13:00
Slava Pestov
1e2c0327ee
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
1e137b6d6a
compiler.tree: remove some code duplication concerning #alien nodes
2010-01-07 16:06:07 +13:00
Slava Pestov
a9f90026df
Update x86-32 for assembly entry point changes
2010-01-06 17:55:20 +13:00
Slava Pestov
d2baa6dde5
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
9399a68786
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
8f449f1a82
Get optimizing compiler working without global register variables in VM
2009-12-22 15:42:49 +13:00
Slava Pestov
31a260b74c
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
1ad9dc14b4
fix simd tests
2009-12-05 17:17:16 -08: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
778c21e94c
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
4116e2aa4e
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
3dee027879
Merge branch 'simd-cleanup' of git://factorcode.org/git/factor into simd-cleanup
2009-12-02 19:09:56 -05:00
Slava Pestov
daf47a539c
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
912b1265fc
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
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
dcc9e6cbf3
don't try to rewrite redundant test-vector-exprs
2009-11-25 20:06:11 -08:00
Slava Pestov
a684164783
Fix non-tail recursive inline recursive compilation
2009-11-25 19:12:09 -06:00
Joe Groff
8095704010
change name of 'unsign-rep' to more sensible 'signed-rep'
2009-11-24 22:44:12 -08:00
Joe Groff
90cd1b47f7
make math.vectors.simd tests pass again
2009-11-24 18:30:12 -08:00
Joe Groff
5aebf7ffba
update compiler.cfg.intrinsics.simd tests
2009-11-24 12:50:27 -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
Slava Pestov
08b6ebc7fa
Factor source files should not be executable
2009-11-21 17:50:43 -06: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
Joe Groff
4700890b70
fix primitive emit fallback for simd intrinsics
2009-11-18 21:29:51 -08:00
Joe Groff
b54a925d1e
enable simd intrinsics and fix first-pass compiler errors
2009-11-18 20:32:05 -08:00
Joe Groff
e6295d5640
tests for all simd intrinsics
2009-11-18 18:20:58 -08:00
Joe Groff
3698595d39
properly handle -vector-op and case words in simd.backend
2009-11-18 12:36:41 -08:00
Joe Groff
132ce61bb5
start on tests for simd intrinsics
2009-11-17 11:13:16 -08:00
Slava Pestov
43c1ae0a44
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
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
00b9506439
compilation fixes
2009-11-14 23:43:22 -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