From 50e40afde9bd032b95233418c006e74c60377ff2 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 19 Dec 2004 01:32:32 +0000 Subject: [PATCH] inlining type_of; speeds up mandelbrot by a nice factor --- TODO.FACTOR.txt | 1 - native/types.c | 14 -------------- native/types.h | 17 ++++++++++++++++- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 5a58ac42cc..be259c9506 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -14,7 +14,6 @@ + linearizer/generator: - getenv/setenv: if literal arg, compile as a load/store -- compiler: drop literal peephole optimization + compiler frontend: diff --git a/native/types.c b/native/types.c index d5bd376d55..dbe2fd3304 100644 --- a/native/types.c +++ b/native/types.c @@ -1,19 +1,5 @@ #include "factor.h" -CELL type_of(CELL tagged) -{ - CELL tag = TAG(tagged); - if(tag == OBJECT_TYPE) - { - if(tagged == F) - return F_TYPE; - else - return untag_header(get(UNTAG(tagged))); - } - else - return tag; -} - bool typep(CELL type, CELL tagged) { return type_of(tagged) == type; diff --git a/native/types.h b/native/types.h index 3d02a45543..7bc6ab6288 100644 --- a/native/types.h +++ b/native/types.h @@ -43,7 +43,8 @@ CELL T; #define NUMBER_TYPE 103 /* F_COMPLEX or REAL */ #define TEXT_TYPE 104 /* F_FIXNUM or F_STRING */ -CELL type_of(CELL tagged); +/* CELL type_of(CELL tagged); */ + bool typep(CELL type, CELL tagged); INLINE CELL tag_header(CELL cell) @@ -105,3 +106,17 @@ CELL untagged_object_size(CELL pointer); CELL object_size(CELL pointer); void primitive_type(void); void primitive_size(void); + +INLINE CELL type_of(CELL tagged) +{ + CELL tag = TAG(tagged); + if(tag == OBJECT_TYPE) + { + if(tagged == F) + return F_TYPE; + else + return untag_header(get(UNTAG(tagged))); + } + else + return tag; +}