From: Douglas K. <sn...@us...> - 2017-03-27 20:51:27
|
The branch "master" has been updated in SBCL: via 316c154afb0239075afbd4ba3a5c748a3ab55750 (commit) from 1d86d6e4d9a7dba8db68c4496106852a5bf8d3bf (commit) - Log ----------------------------------------------------------------- commit 316c154afb0239075afbd4ba3a5c748a3ab55750 Author: Douglas Katzman <do...@go...> Date: Mon Mar 27 16:50:30 2017 -0400 Delete redundant object sizing functions * size_unboxed -> size_boxed * size_instance -> size_short_boxed * size_pointer -> size_immediate --- src/compiler/generic/late-objdef.lisp | 24 +++++++++++++++--------- src/runtime/gc-common.c | 20 -------------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/compiler/generic/late-objdef.lisp b/src/compiler/generic/late-objdef.lisp index 22b6321..3ac58e5 100644 --- a/src/compiler/generic/late-objdef.lisp +++ b/src/compiler/generic/late-objdef.lisp @@ -31,6 +31,10 @@ ;;; Keep this (mostly) lined up with 'early-objdef' for sanity's sake! #+sb-xc-host (defparameter *scav/trans/size* + (mapcar + (lambda (entry) + (cons (symbol-value (symbolicate (car entry) "-WIDETAG")) + (cdr entry))) `((bignum "unboxed") (ratio "boxed") (single-float ,(or #!+64-bit "immediate" "unboxed")) @@ -56,7 +60,7 @@ (sap "unboxed") (unbound-marker "immediate") (weak-pointer "lose" "weak_pointer" "boxed") - (instance-header "instance") + (instance-header "instance" "instance" "short_boxed") (fdefn ,(or #!+(or sparc arm) "boxed" "fdefn") "tiny_boxed") (no-tls-value-marker "immediate") @@ -101,7 +105,7 @@ (complex-bit-vector "boxed") (complex-vector "boxed") - (complex-array "boxed"))) + (complex-array "boxed")))) #+sb-xc-host (defun write-gc-tables (stream) @@ -121,12 +125,10 @@ (setf (svref scavtab i) (format nil "~A_pointer" pointer-kind) (svref sizetab i) "pointer")))))) (dolist (entry *scav/trans/size*) - (destructuring-bind (prefix scav &optional (trans scav) (size trans)) entry - (let ((widetag (symbol-value (find-symbol (format nil "~A-WIDETAG" prefix) - 'sb!vm)))) - (setf (svref scavtab widetag) scav - (svref transtab widetag) trans - (svref sizetab widetag) size)))) + (destructuring-bind (widetag scav &optional (trans scav) (size trans)) entry + (setf (svref scavtab widetag) scav + (svref transtab widetag) trans + (svref sizetab widetag) size))) (flet ((write-table (decl prefix contents) (format stream "~A = {" decl) (loop for i from 0 for x across contents @@ -140,5 +142,9 @@ "scav_" scavtab) (write-table "lispobj (*transother[256])(lispobj object)" "trans_" transtab) + (format stream "#define size_pointer size_immediate~%") + (format stream "#define size_unboxed size_boxed~%") (write-table "sword_t (*sizetab[256])(lispobj *where)" - "size_" sizetab)))) + "size_" sizetab) + (format stream "#undef size_pointer~%") + (format stream "#undef size_unboxed~%")))) diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c index 6863cd2..e9a71d3 100644 --- a/src/runtime/gc-common.c +++ b/src/runtime/gc-common.c @@ -421,12 +421,6 @@ trans_instance(lispobj object) } static sword_t -size_instance(lispobj *where) -{ - return 1 + (instance_length(*where)|1); -} - -static sword_t scav_instance_pointer(lispobj *where, lispobj object) { lispobj copy, *first_pointer; @@ -542,12 +536,6 @@ scav_other_pointer(lispobj *where, lispobj object) */ static sword_t -size_pointer(lispobj *where) -{ - return 1; -} - -static sword_t scav_immediate(lispobj *where, lispobj object) { return 1; @@ -838,14 +826,6 @@ trans_unboxed(lispobj object) sword_t length = HeaderValue(*native_pointer(object)) + 1; return copy_unboxed_object(object, CEILING(length, 2)); } - -static sword_t -size_unboxed(lispobj *where) -{ - sword_t length = HeaderValue(*where) + 1; - return CEILING(length, 2); -} - /* vector-like objects */ static lispobj ----------------------------------------------------------------------- hooks/post-receive -- SBCL |