Skip to content
Snippets Groups Projects
Commit 14091f20 authored by ram's avatar ram
Browse files

Have to clear the constant info between compiling each byte-component too.

parent 8a78c147
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/main.lisp,v 1.80 1993/03/12 15:14:35 hallgren Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/main.lisp,v 1.81 1993/05/08 00:43:55 ram Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -320,7 +320,8 @@ ...@@ -320,7 +320,8 @@
(new-assem:release-segment *elsewhere*)))) (new-assem:release-segment *elsewhere*))))
;; We are done, so don't bother keeping anything around. ;; We are done, so don't bother keeping anything around.
(clear-ir2-info component) (nuke-ir2-component component)
(setf (component-info component) nil)
(undefined-value)) (undefined-value))
...@@ -363,6 +364,8 @@ ...@@ -363,6 +364,8 @@
(byte-compile-component component) (byte-compile-component component)
(native-compile-component component)))) (native-compile-component component))))
(clear-constant-info)
(when *compile-print* (when *compile-print*
(compiler-mumble "~&")) (compiler-mumble "~&"))
...@@ -371,21 +374,15 @@ ...@@ -371,21 +374,15 @@
;;;; Clearing global data structures: ;;;; Clearing global data structures:
;;; CLEAR-IR2-INFO -- Internal ;;; CLEAR-CONSTANT-INFO -- Internal
;;;
;;; Clear all the INFO slots in sight in Component to allow the IR2 data
;;; structures to be reclaimed. We also clear the INFO in constants in the
;;; *FREE-VARIABLES*, etc. The latter is required for correct assignment of
;;; costant TNs, in addition to allowing stuff to be reclaimed.
;;; ;;;
;;; We don't clear the FUNCTIONAL-INFO slots, since they are used to keep ;;; Clear the INFO in constants in the *FREE-VARIABLES*, etc. In addition
;;; track of functions across component boundaries. ;;; to allowing stuff to be reclaimed, this is required for correct assignment
;;; of constant offsets, since we need to assign a new offset for each
;;; component. We don't clear the FUNCTIONAL-INFO slots, since they are used
;;; to keep track of functions across component boundaries.
;;; ;;;
(defun clear-ir2-info (component) (defun clear-constant-info ()
(declare (type component component))
(nuke-ir2-component component)
(setf (component-info component) nil)
(maphash #'(lambda (k v) (maphash #'(lambda (k v)
(declare (ignore k)) (declare (ignore k))
(setf (leaf-info v) nil)) (setf (leaf-info v) nil))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment