X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fmain.lisp;h=efb342cfff936eabb1c1e8551388fdfc4639bb6f;hb=ea12c1295d511ba5242f3ce64c44e1e445f72cc8;hp=cabe030d93de918efbd4141aa29902dd7d0c399a;hpb=208e7b3072e383a2b2555ee259c9691e45cac3d6;p=sbcl.git diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index cabe030..efb342c 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -287,18 +287,20 @@ (maybe-mumble "opt") (event ir1-optimize-until-done) (let ((count 0) - (cleared-reanalyze nil)) + (cleared-reanalyze nil) + (fastp nil)) (loop (when (component-reanalyze component) (setq count 0) (setq cleared-reanalyze t) (setf (component-reanalyze component) nil)) (setf (component-reoptimize component) nil) - (ir1-optimize component) + (ir1-optimize component fastp) (cond ((component-reoptimize component) (incf count) - (when (and (= count *max-optimize-iterations*) - (not (component-reanalyze component))) + (when (and (>= count *max-optimize-iterations*) + (not (component-reanalyze component)) + (eq (component-reoptimize component) :maybe)) (maybe-mumble "*") (cond ((retry-delayed-ir1-transforms :optimize) (maybe-mumble "+") @@ -315,7 +317,8 @@ (t (maybe-mumble " ") (return))) - (maybe-mumble ".")) + (setq fastp (>= count *max-optimize-iterations*)) + (maybe-mumble (if fastp "-" "."))) (when cleared-reanalyze (setf (component-reanalyze component) t))) (values))