Slava Pestov
|
6eaf2d7534
|
cpu.x86: add x87 codegen for Model T enthusiasts
|
2010-05-17 11:35:47 -04:00 |
Slava Pestov
|
ad7636045f
|
compiler: fix bad unit test
|
2010-05-14 18:37:11 -04:00 |
Slava Pestov
|
bb87d124c1
|
compiler: small fixes and cleanups
|
2010-05-13 02:48:20 -04:00 |
Slava Pestov
|
7316d41226
|
FFI rewrite part 2: use ##peek and ##replace instructions to access stack
|
2010-05-09 23:26:43 -04:00 |
Slava Pestov
|
c211c3e84e
|
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
|
2010-05-09 21:36:52 -04:00 |
Slava Pestov
|
035a2e9b63
|
compiler: more tests
|
2010-05-04 05:46:45 -05:00 |
Slava Pestov
|
dd2a4c2c77
|
cpu.x86: GC root offsets were computed wrong in words containing alien calls
|
2010-05-04 02:53:53 -04:00 |
Slava Pestov
|
ea4ee4ff60
|
compiler.tests: remove useless test from float tests; min and max are generic now, with methods on floats, so any potential inconsistency is gone
|
2010-05-04 00:07:53 -04:00 |
Slava Pestov
|
f5c5d8b44c
|
compiler: remove flat machine representation and generate code directly from the CFG
|
2010-05-03 17:34:32 -04:00 |
Slava Pestov
|
7f6ae34d72
|
Updating tests for recent compiler changes
|
2010-05-03 17:34:30 -04:00 |
Slava Pestov
|
38bafd2be8
|
compiler.cfg.linear-scan.assignment: spill slot representation logic was backwards, just like Factor
|
2010-05-03 17:34:29 -04:00 |
Slava Pestov
|
9b34a4a054
|
compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation
|
2010-05-03 17:34:18 -04:00 |
Slava Pestov
|
a9ccfa8f05
|
strings: move string-nth primitive out of the VM and into the library
|
2010-05-03 17:34:12 -04:00 |
Slava Pestov
|
2475699736
|
compiler.cfg: more flexible addressing for ##slot and ##set-slot
|
2010-05-03 17:34:06 -04:00 |
Slava Pestov
|
913b95192e
|
compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm
|
2010-05-03 17:34:06 -04:00 |
Slava Pestov
|
c81063614b
|
compiler.tests.low-level-ir: update for recent changes
|
2010-05-03 17:34:04 -04: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 |
Slava Pestov
|
c1a870fe72
|
sequences: remove stupid <flat-slice> word
|
2010-04-17 00:58:30 -05: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
|
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 |
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
|
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
|
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
|
560c119cd2
|
vm: actually use context callstacks when running code
|
2010-03-26 22:44:43 -04: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 |
Joe Groff
|
bcbc7632c6
|
fix stack effects in compiler tests
|
2010-03-08 23:46:20 -08: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
|
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 |
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
|
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
|
df55fed478
|
generic: rename method-body predicate class to method
|
2010-02-03 23:11:24 +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
|
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
|
c027046857
|
New 'conditional dependency' mechanism for more accurate recording of recompilation information
|
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
|
d58f73453f
|
Add test case for mixin bug Doug found, seems to be fixed now
|
2010-01-30 09:28:52 +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 |
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
|
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
|
e96404327e
|
Get optimizing compiler working without global register variables in VM
|
2009-12-22 15:42:49 +13:00 |
Slava Pestov
|
0612bc6177
|
Factor source files should not be executable
|
2009-11-21 17:50:43 -06:00 |
Slava Pestov
|
41c17f0429
|
Fixing test failures
|
2009-11-11 02:40:24 -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 |
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 |
Slava Pestov
|
8c4ad9bf18
|
compiler: fix intrinsics tests on 32-bit
|
2009-11-04 18:28:46 -06:00 |
Slava Pestov
|
109aa88b06
|
compiler: update unit tests for 4-bit tag change
|
2009-11-03 21:40:29 -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 |
Joe Groff
|
3f15e028f7
|
exile roll and -roll to basis/shuffle and mark them deprecated
|
2009-10-30 17:11:45 -05:00 |
Doug Coleman
|
e376a0ece2
|
(normalize-path) -> absolute-path, canonicalize-path -> resolve-symlinks
|
2009-10-28 17:25:50 -05:00 |
Doug Coleman
|
bd13e018dd
|
memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
|
2009-10-28 15:02:00 -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
|
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 |
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 |
Slava Pestov
|
b2592e01c1
|
compiler: fix typo in intrinsics tests
|
2009-10-19 05:16:04 -05:00 |
Slava Pestov
|
6a2434b56c
|
compiler: fix low-level-ir test on PowerPC
|
2009-10-19 05:03:02 -05:00 |
Slava Pestov
|
2d5cdd19ec
|
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 |
Slava Pestov
|
107c96f642
|
vm: code heap compaction at runtime using compact-gc primitive
|
2009-10-16 11:39:35 -05:00 |
Slava Pestov
|
366c341c5f
|
compiler.tree.propagation.branches: fix live-branches computation for #dispatch nodes
|
2009-10-10 00:23:50 -05:00 |
Slava Pestov
|
b9577e2b0e
|
compiler.cfg.instructions: remove ##box-float, ##unbox-float, ##box-vector, ##unbox-vector since they can be expressed in terms of ##alien-double, ##set-alien-double, ##alien-vector, ##set-alien-vector, and ##allot
|
2009-10-01 18:07:50 -05:00 |
Slava Pestov
|
4abfe06b51
|
Fixing various test failures caused by C type parser change, and clarify C type docs some more
|
2009-09-28 08:48:39 -05:00 |
Slava Pestov
|
08a2eb74f4
|
cpu.x86: shifts didn't work if dst != src1; re-organize file a bit
|
2009-09-28 05:39:53 -05:00 |
Slava Pestov
|
aa3b9097c8
|
compiler: fix codegen test
|
2009-09-27 22:23:03 -05:00 |
Slava Pestov
|
999b22788e
|
compiler: add a unit test
|
2009-09-27 20:36:19 -05:00 |
Slava Pestov
|
59fbe85c9b
|
compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused
|
2009-09-27 20:36:05 -05:00 |
Slava Pestov
|
705b4ab5c3
|
compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code
|
2009-09-27 19:28:20 -05:00 |
sheeple
|
01a4047126
|
Merge branch 'slots' of git://factorcode.org/git/factor into slots
Conflicts:
basis/cpu/x86/x86.factor
|
2009-09-26 03:12:42 -05:00 |
Daniel Ehrenberg
|
c704a823e7
|
Fixing low-level-ir compiler tests for slot changes
|
2009-09-26 02:48:40 -05:00 |
Slava Pestov
|
a6654c97ef
|
compiler: add unit test for undefined_symbol regression
|
2009-09-25 18:08:33 -05:00 |
Doug Coleman
|
810bd63820
|
Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
basis/math/vectors/simd/simd-docs.factor
|
2009-09-23 10:11:49 -05:00 |
Slava Pestov
|
7d39499d86
|
compiler.cfg.ssa.cssa: correctly handle overflowing fixnum instructions
|
2009-09-23 02:47:56 -05:00 |
Doug Coleman
|
51ddc963b8
|
Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
core/generic/generic-tests.factor
|
2009-09-22 10:25:42 -05:00 |
Slava Pestov
|
0e3a261637
|
Fix test failures in compiler.cfg.linearization.order, compiler.tests.low-level-ir and compiler.graphviz
|
2009-09-22 05:07:52 -05:00 |
Slava Pestov
|
513ba1f176
|
compiler.cfg.linearization.order: basic blocks were being inserted twice if some blocks had repeated successors, causing problems for register allocation
|
2009-09-22 03:19:23 -05:00 |
Doug Coleman
|
b86314ec39
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-21 17:59:48 -05:00 |