Björn Lindqvist
ddc5ece757
alien.*: frontend varargs support! #1677
...
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g
: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
John Benediktsson
8a3c5c2634
Fix some tests broken by optimized? rename.
2015-07-15 11:47:03 -07:00
Björn Lindqvist
4390561a6e
compiler.cfg.*: new word reset-vreg-counter, useful for making test writing more convenient
2015-04-29 09:31:55 -07:00
Doug Coleman
9f92b12e3b
compiler.tests: Fix test for <groups> change.
2013-03-23 17:11:27 -07:00
Slava Pestov
07227f22f9
WIP
2012-12-31 11:03:33 -08:00
Doug Coleman
42f4dc36b2
namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``.
2012-07-19 00:02:47 -07:00
Joe Groff
943596575a
use radix literals
2011-11-23 19:03:40 -08:00
John Benediktsson
80e1c8e3f2
Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed.
2011-10-18 13:19:39 -07:00
Slava Pestov
75560699ea
Move <ref>, deref and little-endian? from alien.c-types to alien.data, remove <c-object>
2010-12-25 16:55:36 -08:00
Doug Coleman
1f57dc326e
Remove many uses of <int> and *int etc
2010-10-25 12:49:12 -05:00
Slava Pestov
6b5fffc026
compiler: preliminary implementation of tracking derived pointers in GC maps
2010-09-27 20:12:44 -07:00
Slava Pestov
bb87d124c1
compiler: small fixes and cleanups
2010-05-13 02:48:20 -04: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
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
Slava Pestov
df4fb4a3ee
Removing integers-as-sequences
2010-01-15 07:15:33 +13: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
7fac3682a6
update some naked alien-invokes to use c-type words
2009-10-21 18:44:00 -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
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
Slava Pestov
7d39499d86
compiler.cfg.ssa.cssa: correctly handle overflowing fixnum instructions
2009-09-23 02:47:56 -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
Joe Groff
01d2ef415a
get compiler tests loading
2009-09-16 09:20:47 -05:00
Slava Pestov
ff8c70dbe0
Initial implementation of SSE vector intrinsics:
...
- cpu.architecture: add SSE vector representations
- compiler.cfg.intrinsics.alien: remove an attempt at optimization that value numbering handles now
- compiler.cfg.representations: support instructions where the representation is set in the 'rep' slot, and support conversions between single and double floats
- alien-float, set-alien-float now use the single float representation, and the conversion is implicit; this fixes a long-standing bug where a register could get clobbered because of how %set-alien-float was defined on x86
- math.vectors.specialization: add support for SIMD specialization (where the vector word's body is replaced by another quotation), also specialize the 'sum' word
- math.vectors.simd: 4float-array, 2double-array, 4double-array types, and specializers for the math.vectors words
2009-09-03 02:33:07 -05:00
Slava Pestov
bd629c1262
compiler/tests/codegen.factor: don't do exact float comparison
2009-08-30 18:57:45 -05:00
Slava Pestov
0db01f6d5f
compiler.cfg.linear-scan now supports partial sync-points where all registers are spilled; taking advantage of this, there are new trigonometric intrinsics which yield a 2x performance boost on benchmark.struct-arrays and a 25% boost on benchmark.partial-sums
2009-08-30 04:52:01 -05:00
Slava Pestov
8f19f14c1f
compiler.cfg.instructions: forgot that ##box-displaced-alien needs a GC check; fixes segfault in benchmark.mandel
2009-08-27 04:09:35 -05:00
Slava Pestov
d20d335447
compiler.cfg.stacks: more accurate deconcatenatization inserts fewer partially redundant ##peeks. 11% improvement on benchmark.beust2, 2% reduction in ##peek and ##replace instructions inserted
2009-08-03 07:08:28 -05:00
Slava Pestov
21489ce85e
compiler tests: add test case for coalescing bug
2009-08-02 03:49:54 -05:00
Slava Pestov
20ec574965
compiler.cfg.ssa.destruction: fix bug in trivial-interference heuristic, and type error in code path that didn't run before
2009-08-01 20:22:31 -05:00
Slava Pestov
7c43f71c6d
compiler: Oops, typos in unit tests
2009-07-31 22:33:02 -05:00
Slava Pestov
d515715b0c
compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence
2009-07-31 18:34:15 -05:00
Slava Pestov
cb07256ff5
Add some compiler tests
2009-07-28 06:45:31 -05:00
Slava Pestov
ff7f0e2f3b
Add testcase for recent bug
2009-07-23 18:03:14 -05:00
Slava Pestov
69ded76c66
Fixing compiler tests
2009-07-22 21:10:50 -05:00
Slava Pestov
11731f8d48
compiler.cfg.value-numbering: merge in compiler.cfg.branch-folding
2009-07-14 20:05:01 -05:00
Slava Pestov
03cd550b93
Fix codegen test
2009-07-14 16:11:14 -05:00
Slava Pestov
2ace87370e
compiler.cfg.value-numbering: more optimizations
2009-07-14 16:05:25 -05:00
Slava Pestov
fb488025aa
compiler.cfg.value-numbering.rewrite: fix ##compare-imm rewrite rule
2009-07-04 02:50:50 -05:00
Slava Pestov
64f93e41a9
Various linear scan fixes
...
insert spill before reload to fix x86-32 regression
inactive splitting: if all inactive intervals' registers are in use, don't fail
fix stack analysis tests
2009-06-13 17:35:40 -05:00
Slava Pestov
ade5db2405
cpu.x86: fix small register intrinsics on x86-64
2009-06-03 03:22:46 -05:00
Slava Pestov
66a9416473
Update documentation for stricter vocabulary search path semantics
2009-05-16 00:29:21 -05:00
Slava Pestov
964fbd0a24
Fix test failures from ratio/complex built-in removal
2009-04-30 00:38:55 -05:00
Slava Pestov
7f766ab355
Update compiler tests for tag number changes
2009-04-28 21:43:30 -05:00
Slava Pestov
5f6c074edd
Split up types.c/h into smaller files, remove optimized slot from F_WORD struct
2009-04-28 17:26:11 -05:00
erg
acd312ab19
fix IN: for compiler tests
2009-04-26 00:51:47 -05:00
Slava Pestov
1951d739a0
Stack effect declarations are mandatory on all words now
...
define-temp now takes an effect parameter
Fix compiler bug that Dan found
Stricter enforcement of * effects
Move compile-call from compiler.units to compiler
2009-02-23 20:27:05 -06:00
Slava Pestov
44bfff7c7b
Rename ##load-indirect to ##load-reference since this is more descriptive; value numbering doesn't assign expressions to ##load-reference nodes since this would end up folding literals which were eq? but not =
2009-01-29 01:44:58 -06:00
Slava Pestov
3e685b2eb4
Add test case for bug discovered by erg
2009-01-28 23:35:41 -06:00