0.pre7.52:
[sbcl.git] / src / compiler / debug-dump.lisp
index be17be3..62671b8 100644 (file)
   (values))
 
 ;;; Return a vector and an integer (or null) suitable for use as the
-;;; BLOCKS and TLF-NUMBER in FUN's debug-function. This requires two
+;;; BLOCKS and TLF-NUMBER in FUN's DEBUG-FUN. This requires two
 ;;; passes to compute:
 ;;; -- Scan all blocks, dumping the header and successors followed
 ;;;    by all the non-elsewhere locations.
       (vector-push-extend (tn-sc-offset save-tn) buffer)))
   (values))
 
-;;; Return a vector suitable for use as the DEBUG-FUNCTION-VARIABLES
+;;; Return a vector suitable for use as the DEBUG-FUN-VARIABLES
 ;;; of FUN. LEVEL is the current DEBUG-INFO quality. VAR-LOCS is a
 ;;; hashtable in which we enter the translation from LAMBDA-VARS to
 ;;; the relative position of that variable's location in the resulting
        (incf i))
       (coerce buffer 'simple-vector))))
 
-;;; Return a vector suitable for use as the DEBUG-FUNCTION-VARIABLES of
+;;; Return a vector suitable for use as the DEBUG-FUN-VARIABLES of
 ;;; FUN, representing the arguments to FUN in minimal variable format.
 (defun compute-minimal-variables (fun)
   (declare (type clambda fun))
 ;;;; arguments/returns
 
 ;;; Return a vector to be used as the
-;;; COMPILED-DEBUG-FUNCTION-ARGUMENTS for Fun. If fun is the
+;;; COMPILED-DEBUG-FUN-ARGUMENTS for Fun. If fun is the
 ;;; MAIN-ENTRY for an optional dispatch, then look at the ARGLIST to
 ;;; determine the syntax, otherwise pretend all arguments are fixed.
 ;;;
         (dispatch (lambda-optional-dispatch fun))
         (main-p (and dispatch
                      (eq fun (optional-dispatch-main-entry dispatch)))))
-    (make-compiled-debug-function
+    (make-compiled-debug-fun
      :name (cond ((leaf-name fun))
                 ((let ((ef (functional-entry-function fun)))
                    (and ef (leaf-name ef))))
      :start-pc (label-position (ir2-physenv-environment-start 2env))
      :elsewhere-pc (label-position (ir2-physenv-elsewhere-start 2env)))))
 
-;;; Return a complete C-D-F structure for Fun. This involves
+;;; Return a complete C-D-F structure for FUN. This involves
 ;;; determining the DEBUG-INFO level and filling in optional slots as
 ;;; appropriate.
-(defun compute-1-debug-function (fun var-locs)
+(defun compute-1-debug-fun (fun var-locs)
   (declare (type clambda fun) (type hash-table var-locs))
   (let* ((dfun (dfun-from-fun fun))
         (actual-level (policy (lambda-bind fun) debug))
                (let ((od (lambda-optional-dispatch fun)))
                  (or (not od)
                      (not (eq (optional-dispatch-main-entry od) fun)))))
-          (setf (compiled-debug-function-variables dfun)
+          (setf (compiled-debug-fun-variables dfun)
                 (compute-minimal-variables fun))
-          (setf (compiled-debug-function-arguments dfun) :minimal))
+          (setf (compiled-debug-fun-arguments dfun) :minimal))
          (t
-          (setf (compiled-debug-function-variables dfun)
+          (setf (compiled-debug-fun-variables dfun)
                 (compute-variables fun level var-locs))
-          (setf (compiled-debug-function-arguments dfun)
+          (setf (compiled-debug-fun-arguments dfun)
                 (compute-arguments fun var-locs))))
 
     (when (>= level 2)
       (multiple-value-bind (blocks tlf-num) (compute-debug-blocks fun var-locs)
-       (setf (compiled-debug-function-tlf-number dfun) tlf-num)
-       (setf (compiled-debug-function-blocks dfun) blocks)))
+       (setf (compiled-debug-fun-tlf-number dfun) tlf-num)
+       (setf (compiled-debug-fun-blocks dfun) blocks)))
 
     (if (external-entry-point-p fun)
-       (setf (compiled-debug-function-returns dfun) :standard)
+       (setf (compiled-debug-fun-returns dfun) :standard)
        (let ((info (tail-set-info (lambda-tail-set fun))))
          (when info
            (cond ((eq (return-info-kind info) :unknown)
-                  (setf (compiled-debug-function-returns dfun)
+                  (setf (compiled-debug-fun-returns dfun)
                         :standard))
                  ((/= level 0)
-                  (setf (compiled-debug-function-returns dfun)
+                  (setf (compiled-debug-fun-returns dfun)
                         (compute-debug-returns fun)))))))
     dfun))
 \f
-;;;; minimal debug functions
+;;;; MINIMAL-DEBUG-FUNs
 
-;;; Return true if DFUN can be represented as a minimal debug
-;;; function. DFUN is a cons (<start offset> . C-D-F).
-(defun debug-function-minimal-p (dfun)
+;;; Return true if DFUN can be represented as a MINIMAL-DEBUG-FUN.
+;;; DFUN is a cons (<start offset> . C-D-F).
+(defun debug-fun-minimal-p (dfun)
   (declare (type cons dfun))
   (let ((dfun (cdr dfun)))
-    (and (member (compiled-debug-function-arguments dfun) '(:minimal nil))
-        (null (compiled-debug-function-blocks dfun)))))
+    (and (member (compiled-debug-fun-arguments dfun) '(:minimal nil))
+        (null (compiled-debug-fun-blocks dfun)))))
 
 ;;; Dump a packed binary representation of a DFUN into *BYTE-BUFFER*.
 ;;; PREV-START and START are the byte offsets in the code where the
 ;;; previous function started and where this one starts.
 ;;; PREV-ELSEWHERE is the previous function's elsewhere PC.
 (defun dump-1-minimal-dfun (dfun prev-start start prev-elsewhere)
-  (declare (type compiled-debug-function dfun)
+  (declare (type compiled-debug-fun dfun)
           (type index prev-start start prev-elsewhere))
-  (let* ((name (compiled-debug-function-name dfun))
+  (let* ((name (compiled-debug-fun-name dfun))
         (setf-p (and (consp name) (eq (car name) 'setf)
                      (consp (cdr name)) (symbolp (cadr name))))
         (base-name (if setf-p (cadr name) name))
                (symbol-package base-name)))
         (name-rep
          (cond ((stringp base-name)
-                minimal-debug-function-name-component)
+                minimal-debug-fun-name-component)
                ((not pkg)
-                minimal-debug-function-name-uninterned)
+                minimal-debug-fun-name-uninterned)
                ((eq pkg (sane-package))
-                minimal-debug-function-name-symbol)
+                minimal-debug-fun-name-symbol)
                (t
-                minimal-debug-function-name-packaged))))
+                minimal-debug-fun-name-packaged))))
     (aver (or (atom name) setf-p))
     (let ((options 0))
-      (setf (ldb minimal-debug-function-name-style-byte options) name-rep)
-      (setf (ldb minimal-debug-function-kind-byte options)
-           (position-or-lose (compiled-debug-function-kind dfun)
-                             *minimal-debug-function-kinds*))
-      (setf (ldb minimal-debug-function-returns-byte options)
-           (etypecase (compiled-debug-function-returns dfun)
-             ((member :standard) minimal-debug-function-returns-standard)
-             ((member :fixed) minimal-debug-function-returns-fixed)
-             (vector minimal-debug-function-returns-specified)))
+      (setf (ldb minimal-debug-fun-name-style-byte options) name-rep)
+      (setf (ldb minimal-debug-fun-kind-byte options)
+           (position-or-lose (compiled-debug-fun-kind dfun)
+                             *minimal-debug-fun-kinds*))
+      (setf (ldb minimal-debug-fun-returns-byte options)
+           (etypecase (compiled-debug-fun-returns dfun)
+             ((member :standard) minimal-debug-fun-returns-standard)
+             ((member :fixed) minimal-debug-fun-returns-fixed)
+             (vector minimal-debug-fun-returns-specified)))
       (vector-push-extend options *byte-buffer*))
 
     (let ((flags 0))
       (when setf-p
-       (setq flags (logior flags minimal-debug-function-setf-bit)))
-      (when (compiled-debug-function-nfp dfun)
-       (setq flags (logior flags minimal-debug-function-nfp-bit)))
-      (when (compiled-debug-function-variables dfun)
-       (setq flags (logior flags minimal-debug-function-variables-bit)))
+       (setq flags (logior flags minimal-debug-fun-setf-bit)))
+      (when (compiled-debug-fun-nfp dfun)
+       (setq flags (logior flags minimal-debug-fun-nfp-bit)))
+      (when (compiled-debug-fun-variables dfun)
+       (setq flags (logior flags minimal-debug-fun-variables-bit)))
       (vector-push-extend flags *byte-buffer*))
 
-    (when (eql name-rep minimal-debug-function-name-packaged)
+    (when (eql name-rep minimal-debug-fun-name-packaged)
       (write-var-string (package-name pkg) *byte-buffer*))
     (unless (stringp base-name)
       (write-var-string (symbol-name base-name) *byte-buffer*))
 
-    (let ((vars (compiled-debug-function-variables dfun)))
+    (let ((vars (compiled-debug-fun-variables dfun)))
       (when vars
        (let ((len (length vars)))
          (write-var-integer len *byte-buffer*)
          (dotimes (i len)
            (vector-push-extend (aref vars i) *byte-buffer*)))))
 
-    (let ((returns (compiled-debug-function-returns dfun)))
+    (let ((returns (compiled-debug-fun-returns dfun)))
       (when (vectorp returns)
        (let ((len (length returns)))
          (write-var-integer len *byte-buffer*)
          (dotimes (i len)
            (write-var-integer (aref returns i) *byte-buffer*)))))
 
-    (write-var-integer (compiled-debug-function-return-pc dfun)
+    (write-var-integer (compiled-debug-fun-return-pc dfun)
                       *byte-buffer*)
-    (write-var-integer (compiled-debug-function-old-fp dfun)
+    (write-var-integer (compiled-debug-fun-old-fp dfun)
                       *byte-buffer*)
-    (when (compiled-debug-function-nfp dfun)
-      (write-var-integer (compiled-debug-function-nfp dfun)
+    (when (compiled-debug-fun-nfp dfun)
+      (write-var-integer (compiled-debug-fun-nfp dfun)
                         *byte-buffer*))
     (write-var-integer (- start prev-start) *byte-buffer*)
-    (write-var-integer (- (compiled-debug-function-start-pc dfun) start)
+    (write-var-integer (- (compiled-debug-fun-start-pc dfun) start)
                       *byte-buffer*)
-    (write-var-integer (- (compiled-debug-function-elsewhere-pc dfun)
+    (write-var-integer (- (compiled-debug-fun-elsewhere-pc dfun)
                          prev-elsewhere)
                       *byte-buffer*)))
 
 ;;; Return a byte-vector holding all the debug functions for a
-;;; component in the packed binary minimal-debug-function format.
-(defun compute-minimal-debug-functions (dfuns)
+;;; component in the packed binary MINIMAL-DEBUG-FUN format.
+(defun compute-minimal-debug-funs (dfuns)
   (declare (list dfuns))
   (setf (fill-pointer *byte-buffer*) 0)
   (let ((prev-start 0)
        (prev-elsewhere 0))
     (dolist (dfun dfuns)
       (let ((start (car dfun))
-           (elsewhere (compiled-debug-function-elsewhere-pc (cdr dfun))))
+           (elsewhere (compiled-debug-fun-elsewhere-pc (cdr dfun))))
        (dump-1-minimal-dfun (cdr dfun) prev-start start prev-elsewhere)
        (setq prev-start start  prev-elsewhere elsewhere))))
   (copy-seq *byte-buffer*))
 ;;;; full component dumping
 
 ;;; Compute the full form (simple-vector) function map.
-(defun compute-debug-function-map (sorted)
+(defun compute-debug-fun-map (sorted)
   (declare (list sorted))
   (let* ((len (1- (* (length sorted) 2)))
         (funs-vec (make-array len)))
   (collect ((dfuns))
     (let ((var-locs (make-hash-table :test 'eq))
          ;; FIXME: What is *BYTE-BUFFER* for? Has it become dead code
-         ;; now that we no longer use minimal-debug-function
+         ;; now that we no longer use MINIMAL-DEBUG-FUN
          ;; representation?
          (*byte-buffer* (make-array 10
                                     :element-type '(unsigned-byte 8)
        (clrhash var-locs)
        (dfuns (cons (label-position
                      (block-label (node-block (lambda-bind fun))))
-                    (compute-1-debug-function fun var-locs))))
+                    (compute-1-debug-fun fun var-locs))))
       (let* ((sorted (sort (dfuns) #'< :key #'car))
             ;; FIXME: CMU CL had
-            ;;    (IF (EVERY #'DEBUG-FUNCTION-MINIMAL-P SORTED)
-            ;;        (COMPUTE-MINIMAL-DEBUG-FUNCTIONS SORTED)
-            ;;        (COMPUTE-DEBUG-FUNCTION-MAP SORTED))
-            ;; here. We've gotten rid of the minimal-debug-function
+            ;;    (IF (EVERY #'DEBUG-FUN-MINIMAL-P SORTED)
+            ;;        (COMPUTE-MINIMAL-DEBUG-FUNS SORTED)
+            ;;        (COMPUTE-DEBUG-FUN-MAP SORTED))
+            ;; here. We've gotten rid of the MINIMAL-DEBUG-FUN
             ;; case in SBCL because the minimal representation
             ;; couldn't be made to transform properly under package
             ;; renaming. Now that that case is gone, a lot of code is
             ;; dead, and once everything is known to work, the dead
             ;; code should be deleted.
-            (function-map (compute-debug-function-map sorted)))
+            (function-map (compute-debug-fun-map sorted)))
        (make-compiled-debug-info :name (component-name component)
                                  :function-map function-map)))))
 \f