Commit Graph

897 Commits (8d84bcb61a3e1aa03bb04c112dbede3b5500fcb3)

Author SHA1 Message Date
Slava Pestov 17bf0c721d Merge branch 'master' into integer-simd 2009-09-23 02:48:38 -05:00
Slava Pestov b136ad44d0 compiler.cfg.ssa.cssa: correctly handle overflowing fixnum instructions 2009-09-23 02:47:56 -05:00
Slava Pestov abac963882 math.vectors.simd: new operations: vabs vsqrt vbitand vbitor vbitxor 2009-09-23 02:47:14 -05:00
Slava Pestov fda8870848 Merge branch 'master' into integer-simd 2009-09-22 20:21:40 -05:00
Slava Pestov f03b54287e compiler.tree.propagation.branches: M: #phi propagate-around was unnecessary 2009-09-22 17:56:50 -05:00
Daniel Ehrenberg 2019c0a747 Merge branch 'master' of git://factorcode.org/git/factor into constraints 2009-09-22 16:09:33 -05:00
Daniel Ehrenberg 198fdc82ab Fixing failing unit tests in compiler.tree.propagation due to constraints 2009-09-22 16:01:14 -05:00
Slava Pestov 9a7577a58b 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 8c2f5543cc Merge branch 'master' into integer-simd 2009-09-22 03:24:52 -05:00
Slava Pestov 0778c20722 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
Slava Pestov e6cddf1fa7 Merge branch 'master' of git://factorcode.org/git/factor into integer-simd 2009-09-21 17:58:24 -05:00
Slava Pestov 85c916fedc Rename specific-method to method-for-class, rename (effective-method) to method-for-object, and make both much faster 2009-09-21 17:42:20 -05:00
Slava Pestov e04fba6bc7 Fix conflict 2009-09-20 23:18:07 -05:00
Slava Pestov 66871995c9 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Slava Pestov 78c949b9b7 math.vectors: add v+- word which is accelerated by SSE3 2009-09-20 17:43:16 -05:00
Slava Pestov dfb43bd2ca More integer SIMD work
- move generated vocab support from specialized-arrays to vocabs.generated
- add fuzz testing to math.vectors.simd
- add alien type support for integer SIMD vectors
- SIMD: parsing word generates a SIMD type, instead of pre-generating them all in math.vectors.simd
2009-09-20 16:48:17 -05:00
Slava Pestov fc5fe2bd2a Merge Phil Dawes' VM work 2009-09-20 03:48:08 -05:00
Joe Groff 4a1422e7fe move some allocation words that don't really have much to do with c types out of alien.c-types into a new alien.data vocab 2009-09-17 22:36:05 -05:00
Joe Groff ac5ea1769b get compiler tests loading 2009-09-16 09:20:47 -05:00
Phil Dawes f5e6d43e1e 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 6e5ddc0c33 vm pointer passed to nest_stacks and unnest_stacks (win32) 2009-09-16 08:17:26 +01:00
Phil Dawes 2a1a4ccf27 fixed up getenv compiler intrinsic to use vm struct userenv 2009-09-16 08:16:32 +01:00
Phil Dawes b70e60eaea added VM relocation type 2009-09-16 08:16:30 +01:00
Joe Groff 334e93bbbf get things to a point where they bootstrap again 2009-09-15 21:43:18 -05:00
Joe Groff 02b797f11b 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
Slava Pestov aeb6a01710 compiler.tree.propagation: fix unary-op type functions with complex number inputs 2009-09-15 14:30:20 -07:00
Slava Pestov 1b5614f974 math.functions: more accurate log10 (fixes problem reported by OneEyed) 2009-09-14 16:19:58 -05:00
Slava Pestov 8c46388272 compiler.cfg.builder: don't run certain tests if float intrinsics are not available 2009-09-13 23:12:47 -05:00
Slava Pestov 427bfb4ab8 math: add unordered comparison operators u< u<= u> u>= which behave exactly like < <= > >= except no floating point exceptions are set if one or both inputs are NaNs; also add efficient intrinsic for unordered? predicate, and fix propagation type functions for abs, absq, and bitnot 2009-09-12 22:20:13 -05:00
Slava Pestov 7aac0d69d6 ALIEN: now reads a hexadecimal integer instead of a decimal one, since in general hex is more useful for addresses 2009-09-12 21:17:53 -05:00
Slava Pestov 10423e0d56 compiler.tree.propagation: convert /i of a positive integer by a power of two into a shift 2009-09-11 21:03:11 -05:00
Slava Pestov 89d6096130 compiler.cfg.intrinsics: compile float-mod as a ##binary-float-function instead of a primitive call 2009-09-11 21:00:17 -05:00
Slava Pestov 527db8995a Specialized array overhaul
- Replace hand-written specialized-arrays.* subvocabularies with new system; instead of USE:ing specialized-arrays.T, do SPECIALIZED-ARRAY: T
- Ditto for specialized-vectors; use SPECIALIZED-VECTOR:
- io.mmap.functor: removed entirely, use <mapped-array> instead
- struct-arrays and struct-vectors have been removed because specialized arrays and vectors subsume them entirely
2009-09-09 22:33:34 -05:00
Slava Pestov 66f500bdd7 Fix the build 2009-09-09 13:44:54 -05:00
Slava Pestov 72eec2c53e compiler.cfg.save-contexts: add new pass 2009-09-08 21:56:28 -05:00
Slava Pestov 092b31910d compiler: separate ##save-context instruction from ##alien-invoke, generate a ##save-context for libm calls, and add a pass to combine multiple context saves within a basic block. Fixes crashes with FP traps thrown by libm functions on x86-32 2009-09-08 21:50:55 -05:00
Joe Groff 025a5b7b15 split unordered and ordered float comparison intrinsics in compiler; generate only unordered comparisons for now 2009-09-08 17:04:26 -05:00
Slava Pestov 88b4780096 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 14:22:52 -05:00
Slava Pestov 8eeeeb5c5b inline alien-vector and set-alien-vector if SIMD is not available for a small speedup 2009-09-08 13:56:17 -05:00
Doug Coleman 551c06db2d Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 13:22:52 -05:00
Slava Pestov 17821626c3 Fix conflicts 2009-09-07 23:51:25 -05:00
Slava Pestov b279c5751c compiler.tree.propagation: type check inputs to unsafe foldable words manually, so that stuff like [ "Hi" { } fixnum+fast ] doesn't crash in the compiler 2009-09-07 23:40:23 -05:00
Slava Pestov 0b35d79aee compiler.tree.propagation.call-effect: stronger call( inlining; now can inline 'a [ b ] curry call(' where 'a' is literal, [ b ] doesn't infer, but [ a b ] does infer. This simplifies classes.struct:memory>struct 2009-09-07 17:45:03 -05:00
Slava Pestov e20e9008ea compiler.cfg.value-numbering: update tests for Joe's condition code changes 2009-09-04 03:11:56 -05:00
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 8223715a07 compiler.cfg.intrinsics: fix type detection on the alien type for vector accessors 2009-09-04 02:22:54 -05:00
Slava Pestov 1f5193198b compiler: clean up code generation for alien boxing/unboxing a bit 2009-09-03 21:22:43 -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 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