From 0e35b5cfadc724651c778d44a2cd1a031e0379e3 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 15 Sep 2015 11:33:43 -0600 Subject: [PATCH] fix misplaced flag The misplacement of `SCHEME_PRIM_SOMETIMES_INLINED` caused the optimizer to produce different results when the JIT is statically disabled, for example. --- racket/src/racket/include/scheme.h | 5 ----- racket/src/racket/src/schpriv.h | 3 ++- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/racket/src/racket/include/scheme.h b/racket/src/racket/include/scheme.h index 35d6cf7111..faa8842a2f 100644 --- a/racket/src/racket/include/scheme.h +++ b/racket/src/racket/include/scheme.h @@ -762,17 +762,12 @@ typedef struct Scheme_Offset_Cptr #define SCHEME_PRIM_STRUCT_TYPE_BROKEN_INDEXED_SETTER (32 | 128) #define SCHEME_PRIM_TYPE_PARAMETER 64 #define SCHEME_PRIM_TYPE_STRUCT_PROP_GETTER (64 | 128) -#define SCHEME_PRIM_SOMETIMES_INLINED (64 | 256) #define SCHEME_PRIM_STRUCT_TYPE_STRUCT_PROP_PRED (64 | 128 | 256) #define SCHEME_PRIM_STRUCT_TYPE_INDEXED_GETTER 32 #define SCHEME_PRIM_STRUCT_TYPE_PRED (32 | 64) #define SCHEME_PRIM_PROC_FLAGS(x) (((Scheme_Prim_Proc_Header *)x)->flags) -#define SCHEME_PRIM_IS_SOMETIMES_INLINED(rator) \ - (((SCHEME_PRIM_PROC_FLAGS(rator) & SCHEME_PRIM_OTHER_TYPE_MASK) == SCHEME_PRIM_SOMETIMES_INLINED) \ - || (SCHEME_PRIM_PROC_FLAGS(rator) & (SCHEME_PRIM_IS_UNARY_INLINED | SCHEME_PRIM_IS_BINARY_INLINED))) - typedef struct Scheme_Object *(Scheme_Prim)(int argc, Scheme_Object *argv[]); typedef struct Scheme_Object *(Scheme_Primitive_Closure_Proc)(int argc, struct Scheme_Object *argv[], Scheme_Object *p); diff --git a/racket/src/racket/src/schpriv.h b/racket/src/racket/src/schpriv.h index 73f6f05afd..1ad35bdb3a 100644 --- a/racket/src/racket/src/schpriv.h +++ b/racket/src/racket/src/schpriv.h @@ -76,8 +76,9 @@ #define SCHEME_PRIM_WANTS_EXTFLONUM_THIRD (1 << 12) #define SCHEME_PRIM_IS_UNSAFE_NONALLOCATE (1 << 13) #define SCHEME_PRIM_ALWAYS_ESCAPES (1 << 14) +#define SCHEME_PRIM_SOMETIMES_INLINED (1 << 15) -#define SCHEME_PRIM_OPT_TYPE_SHIFT 15 +#define SCHEME_PRIM_OPT_TYPE_SHIFT 16 #define SCHEME_PRIM_OPT_TYPE_MASK (SCHEME_MAX_LOCAL_TYPE_MASK << SCHEME_PRIM_OPT_TYPE_SHIFT) #define SCHEME_PRIM_OPT_TYPE(x) ((x & SCHEME_PRIM_OPT_TYPE_MASK) >> SCHEME_PRIM_OPT_TYPE_SHIFT)