Slava Pestov
555543faae
compiler: tweak generated code
2009-09-04 03:01:18 -05:00
Slava Pestov
1c87486320
math.vectors.simd: allow punning SIMD vectors between types
2009-09-04 02:35:58 -05:00
Slava Pestov
136d6a42f3
math.vectors.simd: slightly faster 'sum' on 256-bit vectors: add the two components then do horizontal add, instead of doing a horizontal add on each one and adding the results
2009-09-04 02:23:25 -05:00
Slava Pestov
8223715a07
compiler.cfg.intrinsics: fix type detection on the alien type for vector accessors
2009-09-04 02:22:54 -05:00
Slava Pestov
af14fd78dd
math.vectors.simd: docs
2009-09-04 01:22:18 -05:00
Slava Pestov
fc195f33f1
functors: support private words with DEFINES-PRIVATE; use this to make some words generated by math.vectors.simd.functor private
2009-09-04 01:21:59 -05:00
Joe Groff
57a40bc703
make struct-mirror an instance of assoc
2009-09-03 22:31:55 -05:00
Slava Pestov
698f32c4a1
math.vectors.simd: define fallbacks for all vector constructors so that code can still work even if SIMD is not available
2009-09-03 21:37:55 -05:00
Slava Pestov
1f5193198b
compiler: clean up code generation for alien boxing/unboxing a bit
2009-09-03 21:22:43 -05:00
Joe Groff
b1ba82c84f
convert comparison branch code in compiler to use locals
2009-09-03 21:19:39 -05:00
Slava Pestov
214bf6372c
benchmark.nbody-simd: new benchmark; a version of benchmark.nbody that uses math.vectors.simd:double-4 instead of double-arrays
2009-09-03 20:59:49 -05:00
Slava Pestov
20dfbf7ac8
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
Joe Groff
0da9e989f5
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-03 20:32:27 -05:00
Joe Groff
0b9e5c034a
add compiler comparison codes for floating-point unordered comparisons; update x86 backend to generate proper code for all floating-point comparisons
2009-09-03 20:32:05 -05:00
Joe Groff
6aef0184d9
add unit tests for comparisons against nan
2009-09-03 17:27:06 -05:00
Doug Coleman
a9b6671de1
WHAMMY! convert io.sockets.unix
2009-09-03 17:08:54 -05:00
Doug Coleman
62261f18fe
update network structs. NO WHAMMY, NO WHAMMY, NO WHAMMY...STOP!!!
2009-09-03 16:57:36 -05:00
Joe Groff
7a429a530e
forget the old struct class when redefining a struct class so the old accessors get purged
2009-09-03 11:12:58 -05:00
Slava Pestov
80ed4bc918
Merge branch 'master' into simd
2009-09-03 03:45:58 -05:00
Slava Pestov
9cc705f6ba
math.vectors.simd: split off intrinsics into a sub-vocabulary, to avoid loading most of the SIMD code on bootstrap
2009-09-03 03:43:43 -05:00
Slava Pestov
f811208271
Detect SSE version and enable the correct set of SIMD intrinsics
2009-09-03 03:28:38 -05:00
Slava Pestov
11aadb74af
compiler.tree.propagation: type function for clone had an issue, sometimes clone would get optimized out because of incorrect constant folding
2009-09-03 02:40:18 -05:00
Slava Pestov
52b99c050e
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
87ea2dfdc5
benchmark.raytracer: replace hard-coded constant with self-documenting code
2009-09-03 02:24:32 -05:00
Slava Pestov
9d749cae67
specialized-arrays: fix clone method
2009-09-03 02:24:03 -05:00
Slava Pestov
d47077ef2d
struct-arrays: fix new-sequence method
2009-09-03 02:23:37 -05:00
Slava Pestov
9c3214ad98
math.constants: add single float epsilon value
2009-09-03 02:23:22 -05:00
Joe Groff
5d24e48f8c
for typed words, put the specialized definition in a gensym, and check the input types and declare the output types in the inlined outer word so the checks can be cleared by the compiler when possible
2009-09-02 18:45:08 -05:00
Joe Groff
35f0c31916
Merge branch 'master' into strong-typing
2009-09-02 15:34:22 -05:00
Joe Groff
e9a5ed5931
i suck at reading tech docs--those were m64 instructions, not mm instructions
2009-09-02 12:58:35 -05:00
Joe Groff
52540d67e1
vocab metadata for typed
2009-09-02 12:21:58 -05:00
Joe Groff
53b753bc3a
Merge branch 'master' into strong-typing
2009-09-02 12:14:02 -05:00
Joe Groff
05ea0171d4
coerce and check output types on typed words; set "input-classes" and "default-output-classes" props on typed words
2009-09-02 12:13:47 -05:00
Joe Groff
355213e172
separate stack effect typing from hints. put it in a "typed" vocab, and have a TYPED: word that adds the type checking directly to the word
2009-09-02 11:45:30 -05:00
Joe Groff
68279e20bc
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-02 11:07:07 -05:00
Joe Groff
0ddf19d033
get rid of useless mm->xmm instructions in cpu.x86.assembler, add MOVHLPS and MOVLHPS
2009-09-02 11:06:08 -05:00
Slava Pestov
d8be724092
Fix tree shaker again, gah
2009-09-02 07:28:40 -05:00
Slava Pestov
dd1c5b5d68
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-02 06:22:44 -05:00
Slava Pestov
775b9af2f7
compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax
2009-09-02 06:22:37 -05:00
Slava Pestov
9f5577c368
classes.tuple: don't run out of memory inside 'instances' quotation if optimizing compiler is off
2009-09-02 05:19:20 -05:00
Samuel Tardieu
0c76719312
Make "divisors" work with 1 as well
2009-09-02 12:07:23 +02:00
Slava Pestov
e140dd3fbb
tools.deploy.shaker: fix snafu
2009-09-02 04:30:29 -05:00
Joe Groff
61196024e7
handle the stack effect type as a separate specialization pass, and use coercers when available
2009-09-01 23:13:08 -05:00
Joe Groff
468dcc8d60
Merge branch 'master' into strong-typing
2009-09-01 21:35:29 -05:00
Joe Groff
0c2f6fd63c
let's not forget about hex literals
2009-09-01 21:28:23 -05:00
Joe Groff
4c9c1fd963
Merge branch 'master' into strong-typing
2009-09-01 21:18:50 -05:00
Joe Groff
64d2459dac
require numeric literals to begin and end with a digit/decimal point so that stuff like "," and "1," don't parse as numbers
2009-09-01 21:14:26 -05:00
Doug Coleman
cd90136425
add using to windows.com.wrapper
2009-09-01 18:16:57 -05:00
Doug Coleman
379b56bd9c
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-01 18:16:31 -05:00
Joe Groff
11aa46f929
typo in specialize-method
2009-09-01 15:59:59 -05:00