From 073501ed49414d9638cb41c05fb80627529f796d Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 12 Aug 2002 13:54:50 +0000 Subject: [PATCH] 0.7.6.17: Unabbreviate "variable" used adjectivally ... VARIABLE-LENGTH boolean attribute for backend pseudo-instructions ... VARIABLE-LENGTH-P slot in primitive object structure Turn on the assembler scheduler for SPARCs --- TLA | 3 ++- package-data-list.lisp-expr | 2 +- src/code/room.lisp | 2 +- src/compiler/assem.lisp | 6 +++--- src/compiler/fun-info-funs.lisp | 4 ++-- src/compiler/generic/vm-macs.lisp | 18 +++++++++--------- src/compiler/sparc/insts.lisp | 3 +++ version.lisp-expr | 2 +- 8 files changed, 22 insertions(+), 18 deletions(-) diff --git a/TLA b/TLA index f3c440d..77a79c1 100644 --- a/TLA +++ b/TLA @@ -27,7 +27,8 @@ making them more consistent. SB storage base (in compiler IR2) SC storage class (in compiler IR2) TN temporary name (?) (in compiler IR2) - VAR variable + VAR variable (in the lisp entity "noun" sense, not in the + adjectival sense) XEP external entry point Making them even more consistent (within the limits of ANSI and MOP compatibility) would probably be good. diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr index ad31628..72930fe 100644 --- a/package-data-list.lisp-expr +++ b/package-data-list.lisp-expr @@ -1802,7 +1802,7 @@ structure representations" "PRIMITIVE-OBJECT-LOWTAG" "PRIMITIVE-OBJECT-NAME" "PRIMITIVE-OBJECT-OPTIONS" "PRIMITIVE-OBJECT-P" "PRIMITIVE-OBJECT-SIZE" "PRIMITIVE-OBJECT-SLOTS" - "PRIMITIVE-OBJECT-VARIABLE-LENGTH" "PRINT-ALLOCATED-OBJECTS" + "PRIMITIVE-OBJECT-VARIABLE-LENGTH-P" "PRINT-ALLOCATED-OBJECTS" "RANDOM-IMMEDIATE-SC-NUMBER" "RATIO-DENOMINATOR-SLOT" "RATIO-NUMERATOR-SLOT" "RATIO-SIZE" "RATIO-WIDETAG" "*READ-ONLY-SPACE-FREE-POINTER*" diff --git a/src/code/room.lisp b/src/code/room.lisp index 90a7ece..7fb999c 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -32,7 +32,7 @@ (let ((widetag (primitive-object-widetag obj)) (lowtag (primitive-object-lowtag obj)) (name (primitive-object-name obj)) - (variable (primitive-object-var-length obj)) + (variable (primitive-object-variable-length-p obj)) (size (primitive-object-size obj))) (cond ((not lowtag)) diff --git a/src/compiler/assem.lisp b/src/compiler/assem.lisp index 5634b9b..22f1c2e 100644 --- a/src/compiler/assem.lisp +++ b/src/compiler/assem.lisp @@ -185,7 +185,7 @@ ;; This attribute indicates that this ``instruction'' can be ;; variable length, and therefore had better never be used in a ;; branch delay slot. - var-length) + variable-length) (defstruct (instruction (:include sset-element) @@ -360,7 +360,7 @@ (when countdown (decf countdown) (aver (not (instruction-attributep (inst-attributes inst) - var-length)))) + variable-length)))) (cond ((instruction-attributep (inst-attributes inst) branch) (unless countdown (setf countdown (inst-delay inst))) @@ -573,7 +573,7 @@ p ;; the branch has two dependents and one of them dpends on (let ((inst (car remaining))) (unless (and delay-slot-p (instruction-attributep (inst-attributes inst) - var-length)) + variable-length)) ;; We've got us a live one here. Go for it. #!+sb-show-assem (format *trace-output* "emitting ~S~%" inst) ;; Delete it from the list of insts. diff --git a/src/compiler/fun-info-funs.lisp b/src/compiler/fun-info-funs.lisp index bf996e1..6c7c63d 100644 --- a/src/compiler/fun-info-funs.lisp +++ b/src/compiler/fun-info-funs.lisp @@ -23,10 +23,10 @@ (ir2-convert-setter node block name offset lowtag))))) name) -(defun %def-alloc (name words var-length header lowtag inits) +(defun %def-alloc (name words variable-length-p header lowtag inits) (let ((info (fun-info-or-lose name))) (setf (fun-info-ir2-convert info) - (if var-length + (if variable-length-p (lambda (node block) (ir2-convert-variable-allocation node block name words header lowtag inits)) diff --git a/src/compiler/generic/vm-macs.lisp b/src/compiler/generic/vm-macs.lisp index 984e83b..639f7e4 100644 --- a/src/compiler/generic/vm-macs.lisp +++ b/src/compiler/generic/vm-macs.lisp @@ -50,7 +50,7 @@ (options nil :type list) (slots nil :type list) (size 0 :type fixnum) - (var-length nil :type (member t nil))) + (variable-length-p nil :type (member t nil))) (defvar *primitive-objects* nil) @@ -67,9 +67,9 @@ &rest slot-specs) (collect ((slots) (exports) (constants) (forms) (inits)) (let ((offset (if widetag 1 0)) - (var-length nil)) + (variable-length-p nil)) (dolist (spec slot-specs) - (when var-length + (when variable-length-p (error "No more slots can follow a :rest-p slot.")) (destructuring-bind (slot-name &rest options @@ -103,14 +103,14 @@ (when init (inits (cons init offset))) (when rest-p - (setf var-length t)) + (setf variable-length-p t)) (incf offset length))) - (unless var-length + (unless variable-length-p (let ((size (symbolicate name "-SIZE"))) (constants `(def!constant ,size ,offset)) (exports size))) (when alloc-trans - (forms `(def-alloc ,alloc-trans ,offset ,var-length ,widetag + (forms `(def-alloc ,alloc-trans ,offset ,variable-length-p ,widetag ,lowtag ',(inits)))) `(progn (eval-when (:compile-toplevel :load-toplevel :execute) @@ -120,7 +120,7 @@ :lowtag lowtag :slots (slots) :size offset - :var-length var-length)) + :variable-length-p variable-length-p)) ,@(constants)) ,@(forms))))) @@ -132,8 +132,8 @@ `(%def-reffer ',name ,offset ,lowtag)) (defmacro def-setter (name offset lowtag) `(%def-setter ',name ,offset ,lowtag)) -(defmacro def-alloc (name words var-length header lowtag inits) - `(%def-alloc ',name ,words ,var-length ,header ,lowtag ,inits)) +(defmacro def-alloc (name words variable-length-p header lowtag inits) + `(%def-alloc ',name ,words ,variable-length-p ,header ,lowtag ,inits)) ;;; KLUDGE: The %DEF-FOO functions used to implement the macros here ;;; are defined later in another file, since they use structure slot ;;; setters defined later, and we can't have physical forward diff --git a/src/compiler/sparc/insts.lisp b/src/compiler/sparc/insts.lisp index bd3589c..5f0b275 100644 --- a/src/compiler/sparc/insts.lisp +++ b/src/compiler/sparc/insts.lisp @@ -15,6 +15,9 @@ ;;;(def-assembler-params ;;; :scheduler-p t ;;; :max-locations 100) +(eval-when (:compile-toplevel :load-toplevel :execute) + (setf sb!assem:*assem-scheduler-p* t) + (setf sb!assem:*assem-max-locations* 100)) ;;; Constants, types, conversion functions, some disassembler stuff. (defun reg-tn-encoding (tn) diff --git a/version.lisp-expr b/version.lisp-expr index a39e26b..1254533 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.6.16" +"0.7.6.17" -- 1.7.10.4