inline alien-vector and set-alien-vector if SIMD is not available for a small speedup
parent
82a8ef7beb
commit
1e5bc3b376
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors byte-arrays combinators
|
||||
USING: accessors byte-arrays combinators fry
|
||||
compiler.tree.propagation.info cpu.architecture kernel words math
|
||||
math.intervals math.vectors.simd.intrinsics ;
|
||||
IN: compiler.tree.propagation.simd
|
||||
|
@ -40,3 +40,13 @@ IN: compiler.tree.propagation.simd
|
|||
] "outputs" set-word-prop
|
||||
|
||||
\ alien-vector { byte-array } "default-output-classes" set-word-prop
|
||||
|
||||
! If SIMD is not available, inline alien-vector and set-alien-vector
|
||||
! to get a speedup
|
||||
: inline-unless-intrinsic ( word -- )
|
||||
dup '[ drop _ dup "intrinsic" word-prop [ drop f ] [ def>> ] if ]
|
||||
"custom-inlining" set-word-prop ;
|
||||
|
||||
\ alien-vector inline-unless-intrinsic
|
||||
|
||||
\ set-alien-vector inline-unless-intrinsic
|
||||
|
|
|
@ -67,7 +67,7 @@ M: double-rep reg-class-of drop float-regs ;
|
|||
M: vector-rep reg-class-of drop float-regs ;
|
||||
M: stack-params reg-class-of drop stack-params ;
|
||||
|
||||
GENERIC: rep-size ( rep -- n )
|
||||
GENERIC: rep-size ( rep -- n ) foldable
|
||||
|
||||
M: tagged-rep rep-size drop cell ;
|
||||
M: int-rep rep-size drop cell ;
|
||||
|
|
Loading…
Reference in New Issue