X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fpolicies.lisp;h=f5c417dc5656094e7284e939a7e6b157c748cf2a;hb=f2b65035e35f3f7ae5f645cea6338538235ca899;hp=b62b239ff131cb25877afad60cba91b7408ced00;hpb=905a0fc4c21ff6c8c752b9436e0616b868f1dfcc;p=sbcl.git diff --git a/src/compiler/policies.lisp b/src/compiler/policies.lisp index b62b239..f5c417d 100644 --- a/src/compiler/policies.lisp +++ b/src/compiler/policies.lisp @@ -12,22 +12,20 @@ (in-package "SB!C") (define-optimization-quality type-check + ;; FIXME: grepping the tree for "policy.*safety" yields some + ;; places which might want to use this instead -- or + ;; some other derived policy. (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)) - 3) - (t 2)) - ("no" "maybe" "fast" "full")) + ((and (< safety 2) (< safety speed)) 2) + (t 3)) + ("no" "maybe" "weak" "full")) (define-optimization-quality check-tag-existence (cond ((= safety 0) 0) (t 3)) ("no" "maybe" "yes" "yes")) -(define-optimization-quality let-convertion +(define-optimization-quality let-conversion (if (<= debug speed) 3 0) ("off" "maybe" "on" "on")) @@ -56,9 +54,9 @@ (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 @@ -76,3 +74,28 @@ debug 0) ("no" "no" "partial" "full")) + +(define-optimization-quality compute-debug-fun + debug + ("no" "minimal" "yes" "yes")) + +(define-optimization-quality preserve-single-use-debug-variables + (if (and (>= debug 2) + (< speed 3)) + 3 + 0) + ("no" "no" "no" "yes")) + +(define-optimization-quality insert-array-bounds-checks + (if (= safety 0) 0 3) + ("no" "yes" "yes" "yes")) + +(define-optimization-quality store-xref-data + (if (= space 3) + 0 + 3) + ("no" "yes" "yes" "yes")) + +(define-optimization-quality store-coverage-data + 0 + ("no" "no" "yes" "yes"))