Slava Pestov
9d90bdd439
Fix conflict
2009-09-20 23:18:07 -05:00
Slava Pestov
acea55c692
math.vectors: add v+- word which is accelerated by SSE3
2009-09-20 17:43:16 -05:00
Slava Pestov
f8a91438cd
Merge Phil Dawes' VM work
2009-09-20 03:48:08 -05:00
Joe Groff
01d2ef415a
get compiler tests loading
2009-09-16 09:20:47 -05:00
Phil Dawes
8a65f35c31
vm passed in primitives as arg0 for x86.64
2009-09-16 08:22:17 +01:00
Phil Dawes
4af25578d8
fixed up some alien boxing (x86 32 & 64)
2009-09-16 08:20:50 +01:00
Phil Dawes
0470b7d2c5
fixed vm ptr passing to to_value_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
1b92721660
fixed vm ptr passing to box_small_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
888eae9554
fixed vm ptr passing to box_value_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
3345922330
quick test vocab for mt stuff
2009-09-16 08:20:50 +01:00
Phil Dawes
b02c602a89
added vm passing to some alien/boxing functions and added some vm asserts
2009-09-16 08:20:10 +01:00
Phil Dawes
5cd2fbb564
vm ptr passed to lazy_jit_compile on x86.64
2009-09-16 08:20:10 +01:00
Phil Dawes
be1b079eb5
Primitives now pass vm ptr on 64bit x86
2009-09-16 08:20:09 +01:00
Phil Dawes
0bc7c0c1d0
separated vm-1st-arg and vm-3rd-arg asm invoke words (needed for ppc & x86.64)
2009-09-16 08:20:09 +01:00
Phil Dawes
ff54a57eb3
added code to pass vm ptr to some unboxers
2009-09-16 08:16:32 +01:00
Phil Dawes
4afc16e95b
passing vm ptr to lazy_jit_compile mostly working
2009-09-16 08:16:30 +01:00
Phil Dawes
6a193bb0d5
Added %vm-invoke to pass vm ptr to vm functions (x86.32 only, otherwise uses singleton vm)
2009-09-16 08:16:30 +01:00
Joe Groff
ab8abeaee4
Merge branch 'master' into c-type-words
2009-09-15 19:14:41 -05:00
Joe Groff
4d16c569f0
struct classes now make their own C type without help from alien.structs. remove alien.structs dependencies from everywhere outside of alien and compiler, and have the FFI handle both alien.structs and classes.struct c-types
2009-09-15 17:38:49 -05:00
Joe Groff
35b76b83af
convert compiler cpu backends to use c-type words
2009-09-15 16:08:42 -05:00
Slava Pestov
4d5a4222b6
More SIMD work
...
- Rename SIMD types and register representations: <type>-<count> rather than <count><type>-array
- Make a functor to define 256-bit vector types, use it to define float-8 type
- Make SIMD instructions pure-insns so that they participate in value numbering
2009-09-03 20:58:56 -05:00
Slava Pestov
906a0d212a
Detect SSE version and enable the correct set of SIMD intrinsics
2009-09-03 03:28:38 -05:00
Slava Pestov
f91b539c31
cpu.ppc: implement fast float function calls; 3x speedup on benchmark.struct-arrays on PowerPC
2009-09-01 15:19:26 -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
d957ae4e44
Performance improvements to make struct-arrays benchmark faster
...
- improved optimization of ##unbox-any-c-ptr on ##box-displaced-alien; convert it to ##unbox-c-ptr where possible using class info stored in the ##bda instruction
- make fcos, fsin, etc inline again; everything in math.libm inline again, except for fsqrt which is an intrinsic
- convert min and max on floats to float-min and float-max
- make min and max not inline, so that the above can work
- struct-arrays: rice a bit so that more fixnums come up
2009-08-28 05:21:16 -05:00
Slava Pestov
0df8aadce2
cpu.x86: use SQRTSD instruction for math.libm:fsqrt word
2009-08-25 23:22:15 -05:00
Slava Pestov
1afd001393
basis/cpu: eliminate some usages of rot
2009-08-25 19:38:48 -05:00
Doug Coleman
3f3d57032b
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Slava Pestov
725280d424
Split off the notion of a register representation from a register class
2009-08-07 17:44:50 -05:00
Doug Coleman
3258f9c4ef
fix using list on win64
2009-07-31 16:27:18 -05:00
Slava Pestov
cd7a1d6c58
Oopsie
2009-07-30 08:27:52 -05:00
Slava Pestov
a9977d7c79
cpu.x86: update non-optimizing compiler backends for assembler vocab split
2009-07-30 02:22:37 -05:00
Slava Pestov
73862a9a03
cpu.x86.assembler: move operands to operands sub-vocabulary, clean up small-reg-* code in compiler backend
2009-07-29 21:44:08 -05:00
Slava Pestov
e76dce8aff
Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint
2009-07-16 18:29:40 -05:00
Slava Pestov
4db44cd23f
%dispatch: sometimes the generated sequence is one byte longer, so instead of hard-coding it, compute the right length
2009-06-30 18:11:15 -05:00
Slava Pestov
fc6c9e2dfd
cpu.x86: don't clobber src in %dispatch
2009-06-30 16:47:22 -05:00
Slava Pestov
2d231f066a
GC checks now save and restore registers
2009-06-02 18:23:47 -05:00
Slava Pestov
76d74c16af
Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation
2009-05-29 01:39:14 -05:00
U-C4\Administrator
02b769475b
fix duplicate using lines
2009-05-17 20:29:32 -05:00
Slava Pestov
12a34d81f7
JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends
2009-05-06 20:04:49 -05:00
Slava Pestov
581d017b46
Working on inline caching for tail call sites
2009-05-06 19:22:22 -05:00
Slava Pestov
76281235e7
bootstrap.image: clean up jit-define and define-sub-primitive so that
2009-04-25 22:35:19 -05:00
Slava Pestov
6b25e99470
Add summary for heaps more vocabs
2009-02-16 21:05:13 -06:00
Slava Pestov
6b99b04531
Add vocab: for vocab-relative paths
2009-02-15 19:53:21 -06:00
sheeple
facd455e92
Working on complex float support in FFI on NetBSD
2009-02-12 06:25:07 -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
34792a9f23
Remove >r/r>
2008-12-17 19:17:37 -06:00
Slava Pestov
0021cde743
Fix more compile errors
2008-12-15 22:21:56 -06:00
Slava Pestov
d821cd7281
Fix win64 bootstrap
2008-12-10 01:19:22 -06:00
Slava Pestov
4b927f732f
Clean up JIT backend a little
2008-12-09 17:14:17 -06:00