Some optimizer change sfores for new codegen
parent
0f2118cf38
commit
1a865f89ac
|
@ -4,20 +4,42 @@ USING: kernel classes.tuple classes.tuple.private math arrays
|
|||
byte-arrays words stack-checker.known-words ;
|
||||
IN: compiler.intrinsics
|
||||
|
||||
: (tuple) ( layout -- tuple )
|
||||
"BUG: missing (tuple) intrinsic" throw ;
|
||||
ERROR: missing-intrinsic ;
|
||||
|
||||
: (tuple) ( n -- tuple ) missing-intrinsic ;
|
||||
|
||||
\ (tuple) { tuple-layout } { tuple } define-primitive
|
||||
\ (tuple) make-flushable
|
||||
|
||||
: (array) ( n -- array )
|
||||
"BUG: missing (array) intrinsic" throw ;
|
||||
: (array) ( n -- array ) missing-intrinsic ;
|
||||
|
||||
\ (array) { integer } { array } define-primitive
|
||||
\ (array) make-flushable
|
||||
|
||||
: (byte-array) ( n -- byte-array )
|
||||
"BUG: missing (byte-array) intrinsic" throw ;
|
||||
: (byte-array) ( n -- byte-array ) missing-intrinsic ;
|
||||
|
||||
\ (byte-array) { integer } { byte-array } define-primitive
|
||||
\ (byte-array) make-flushable
|
||||
|
||||
: (ratio) ( -- ratio ) missing-intrinsic ;
|
||||
|
||||
\ (ratio) { } { ratio } define-primitive
|
||||
\ (ratio) make-flushable
|
||||
|
||||
: (complex) ( -- complex ) missing-intrinsic ;
|
||||
|
||||
\ (complex) { } { complex } define-primitive
|
||||
\ (complex) make-flushable
|
||||
|
||||
: (wrapper) ( -- wrapper ) missing-intrinsic ;
|
||||
|
||||
\ (wrapper) { } { wrapper } define-primitive
|
||||
\ (wrapper) make-flushable
|
||||
|
||||
: (set-slot) ( val obj n -- ) missing-intrinsic ;
|
||||
|
||||
\ (set-slot) { object object fixnum } { } define-primitive
|
||||
|
||||
: (write-barrier) ( obj -- ) missing-intrinsic ;
|
||||
|
||||
\ (write-barrier) { object } { } define-primitive
|
||||
|
|
|
@ -298,6 +298,12 @@ SYMBOL: value-infos
|
|||
: node-output-infos ( node -- seq )
|
||||
dup out-d>> [ node-value-info ] with map ;
|
||||
|
||||
: first-literal ( #call -- obj )
|
||||
dup in-d>> first node-value-info literal>> ;
|
||||
|
||||
: last-literal ( #call -- obj )
|
||||
dup out-d>> peek node-value-info literal>> ;
|
||||
|
||||
: immutable-tuple-boa? ( #call -- ? )
|
||||
dup word>> \ <tuple-boa> eq? [
|
||||
dup in-d>> peek node-value-info
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
! Copyright (C) 2007 Slava Pestov.
|
||||
! Copyright (C) 2007, 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: namespaces math words kernel assocs classes
|
||||
math.order kernel.private ;
|
||||
|
@ -74,3 +74,5 @@ M: bignum >integer
|
|||
M: real >integer
|
||||
dup most-negative-fixnum most-positive-fixnum between?
|
||||
[ >fixnum ] [ >bignum ] if ;
|
||||
|
||||
UNION: immediate fixnum POSTPONE: f ;
|
||||
|
|
Loading…
Reference in New Issue