X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fpolicies.lisp;h=7e3aaaf74941f8ba1fceb840b5b6b5a914099c1a;hb=d90c8a75da90925a51a587f7bd4d9c494256f68a;hp=18437bb54a1c908b4811e9c824f69ab62cac246a;hpb=e7b2c507c364da9395ad1f9591210dac44f24afd;p=sbcl.git diff --git a/src/compiler/policies.lisp b/src/compiler/policies.lisp index 18437bb..7e3aaaf 100644 --- a/src/compiler/policies.lisp +++ b/src/compiler/policies.lisp @@ -45,12 +45,6 @@ Enabling this option can increase heap consing of closures.") ("off" "maybe" "on" "on") "Control inline-substitution of used-once local functions.") -(define-optimization-quality rest-conversion - (if (= debug 3) 0 3) - ("off" "maybe" "on" "on") - "Control conversion of &REST argments to &MORE arguments when -only used as the final argument to APPLY.") - (define-optimization-quality alien-funcall-saves-fp-and-pc (if (<= speed debug) 3 0) ("no" "maybe" "yes" "yes") @@ -61,28 +55,15 @@ more reliable bactracing across foreign calls.") (if (zerop safety) 0 3) ("no" "maybe" "yes" "yes")) -(define-optimization-quality merge-tail-calls - (if (or (> space debug) - (> speed debug)) - 3 - 0) - ("no" "maybe" "yes" "yes") - "Control whether tail-calls should reuse caller stack frame. -Enabling this option make functions use less stack space, and make -tail-recursive functions execute in constant stack, but debugging -become harder, because backtraces show only part of function call -sequence. - -This options has no effect when INSERT-DEBUG-CATCH is set.") - (define-optimization-quality insert-debug-catch (if (> debug (max speed space)) 3 0) ("no" "maybe" "yes" "yes") - "Enable possibility of returning from stack frames with the debugger. - -Enabling this option effectively disables MERGE-TAIL-CALLS.") + "Enables possibility of returning from stack frames with the debugger. +Enabling this option causes apparent tail calls to no longer be in a tail +position -- effectively disabling tail-merging, hence causing apparently tail +recursive functions to no longer execute in constant stack space") (define-optimization-quality recognize-self-calls (if (> (max speed space) debug) @@ -148,3 +129,16 @@ debugger.") (define-optimization-quality store-coverage-data 0 ("no" "no" "yes" "yes")) + +#!+sb-safepoint +(define-optimization-quality inhibit-safepoints + 0 + ("no" "no" "yes" "yes") + "When disabled, the compiler will insert safepoints at strategic +points (loop edges, function prologues) to ensure that potentially +long-running code can be interrupted. + +When enabled, no safepoints will be inserted explicitly. Note that +this declaration does not prevent out-of-line function calls, which +will encounter safepoints unless the target function has also been +compiled with this declaration in effect.")