Move register allocation to its own package, SB!REGALLOC
[sbcl.git] / src / compiler / main.lisp
index 1223388..7ca4376 100644 (file)
@@ -404,8 +404,8 @@ Examples:
 (defparameter *max-optimize-iterations* 3 ; ARB
   #!+sb-doc
   "The upper limit on the number of times that we will consecutively do IR1
-  optimization that doesn't introduce any new code. A finite limit is
-  necessary, since type inference may take arbitrarily long to converge.")
+optimization that doesn't introduce any new code. A finite limit is
+necessary, since type inference may take arbitrarily long to converge.")
 
 (defevent ir1-optimize-until-done "IR1-OPTIMIZE-UNTIL-DONE called")
 (defevent ir1-optimize-maxed-out "hit *MAX-OPTIMIZE-ITERATIONS* limit")
@@ -526,6 +526,13 @@ Examples:
         (return))
       (incf loop-count)))
 
+  (when *check-consistency*
+    (do-blocks-backwards (block component)
+      (awhen (flush-dead-code block)
+        (let ((*compiler-error-context* it))
+          (compiler-warn "dead code detected at the end of ~S"
+                         'ir1-phases)))))
+
   (ir1-finalize component)
   (values))
 
@@ -588,7 +595,7 @@ Examples:
             (check-life-consistency component))
 
           (maybe-mumble "pack ")
-          (pack component)
+          (sb!regalloc:pack component)
 
           (when *check-consistency*
             (maybe-mumble "check-pack ")