0.6.10.13:
[sbcl.git] / src / compiler / early-c.lisp
index 4e75b23..62b7329 100644 (file)
 
 ;;; the type of LAYOUT-DEPTHOID slot values
 (def!type sb!kernel::layout-depthoid () '(or index (integer -1 -1)))
-
-;;; a value for an optimization declaration
-(def!type sb!c::policy-quality () '(or (rational 0 3) null))
-\f
-;;;; policy stuff
-
-;;; a map from optimization policy quality to corresponding POLICY
-;;; slot name, used to automatically keep POLICY-related definitions
-;;; in sync even if future maintenance changes POLICY slots
-(eval-when (:compile-toplevel :load-toplevel :execute)
-  (defstruct (policy-quality-slot (:constructor %make-pqs (quality accessor)))
-    ;; the name of the quality
-    (quality (required-argument) :type symbol)
-    ;; the name of the structure slot accessor
-    (accessor (required-argument) :type symbol))
-  (defparameter *policy-quality-slots*
-    (list (%make-pqs 'speed   'policy-speed)
-         (%make-pqs 'space   'policy-space)
-         (%make-pqs 'safety  'policy-safety)
-         (%make-pqs 'cspeed  'policy-cspeed)
-         (%make-pqs 'brevity 'policy-brevity)
-         (%make-pqs 'debug   'policy-debug)))
-  (defun named-policy-quality-slot (name)
-    (find name *policy-quality-slots* :key #'policy-quality-slot-quality)))
-
-;;; A POLICY object holds information about the compilation policy for
-;;; a node. See the LEXENV definition for a description of how it is used.
-#.`(def!struct (policy
-               (:copier nil)) ; (but see DEFUN COPY-POLICY)
-     ,@(mapcar (lambda (pqs)
-                `(,(policy-quality-slot-quality pqs) nil
-                  :type policy-quality))
-              *policy-quality-slots*))
-
-;;; an annoyingly hairy way of doing COPY-STRUCTURE on POLICY objects
-;;;
-;;; (We need this explicit, separate, hairy DEFUN only because we need
-;;; to be able to copy POLICY objects in cold init toplevel forms,
-;;; earlier than the default copier closure created by DEFSTRUCT
-;;; toplevel forms would be available, and earlier than LAYOUT-INFO is
-;;; initialized (which is a prerequisite for COPY-STRUCTURE to work).)
-#.`(defun copy-policy (policy)
-     (make-policy
-      ,@(mapcan (lambda (pqs)
-                 `(,(keywordicate (policy-quality-slot-quality pqs))
-                   (,(policy-quality-slot-accessor pqs) policy)))
-               *policy-quality-slots*)))
-
-;;; *DEFAULT-POLICY* holds the current global compiler policy
-;;; information. Whenever the policy is changed, we copy the structure
-;;; so that old uses will still get the old values.
-;;; *DEFAULT-INTERFACE-POLICY* holds any values specified by an
-;;; OPTIMIZE-INTERFACE declaration.
-(declaim (type policy *default-policy* *default-interface-policy*))
-(defvar *default-policy*)         ; initialized in cold init
-(defvar *default-interface-policy*) ; initialized in cold init
 \f
 ;;; possible values for the INLINE-ness of a function.
 (deftype inlinep ()
     (notinline . :notinline)
     (maybe-inline . :maybe-inline)))
 
-;;; The lexical environment we are currently converting in.
+;;; the lexical environment we are currently converting in
 (defvar *lexenv*)
 (declaim (type lexenv *lexenv*))
 
 (defvar *count-vop-usages*)
 (defvar *current-path*)
 (defvar *current-component*)
-(defvar *default-policy*)
-(defvar *default-interface-policy*)
+(defvar *policy*)
+(defvar *interface-policy*)
 (defvar *dynamic-counts-tn*)
 (defvar *elsewhere*)
 (defvar *event-info*)