X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fpolicies.lisp;h=b1d2ee6e4b0c9caa68370e38a090b824d917c477;hb=d319b944d934f3efbb01a2a345c46bafd40857d0;hp=14a0867c6adbe1f01fbe2e5135b507e69744a493;hpb=3a618201c9f2370bb8784217a866d000371769e5;p=sbcl.git diff --git a/src/compiler/policies.lisp b/src/compiler/policies.lisp index 14a0867..b1d2ee6 100644 --- a/src/compiler/policies.lisp +++ b/src/compiler/policies.lisp @@ -15,7 +15,6 @@ (cond ((= safety 0) 0) ;; FIXME: It is duplicated in PROBABLE-TYPE-CHECK-P and in ;; some other places. - ((and (<= speed safety) (<= space safety) (<= compilation-speed safety)) @@ -23,6 +22,11 @@ (t 2)) ("no" "maybe" "fast" "full")) +(define-optimization-quality check-tag-existence + (cond ((= safety 0) 0) + (t 3)) + ("no" "maybe" "yes" "yes")) + (define-optimization-quality let-convertion (if (<= debug speed) 3 0) ("off" "maybe" "on" "on")) @@ -52,11 +56,23 @@ (define-optimization-quality stack-allocate-dynamic-extent (if (and (> (max speed space) (max debug safety)) - (< safety 3)) - 3 - 0) + (< safety 3)) + 3 + 0) ("no" "maybe" "yes" "yes")) +(define-optimization-quality stack-allocate-vector + (cond ((= stack-allocate-dynamic-extent 0) 0) + ((= safety 0) 3) + (t 2)) + ("no" "maybe" "one page" "yes")) + (define-optimization-quality float-accuracy 3 ("degraded" "full" "full" "full")) + +(define-optimization-quality insert-step-conditions + (if (> debug (max speed space compilation-speed)) + debug + 0) + ("no" "no" "partial" "full"))