1 ;;;; aimed optimization qualities
3 ;;;; This software is part of the SBCL system. See the README file for
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
14 (define-optimization-quality type-check
15 ;; FIXME: grepping the tree for "policy.*safety" yields some
16 ;; places which might want to use this instead -- or
17 ;; some other derived policy.
18 (cond ((= safety 0) 0)
19 ((and (< safety 2) (< safety speed)) 2)
21 ("no" "maybe" "weak" "full"))
23 (define-optimization-quality check-tag-existence
24 (cond ((= safety 0) 0)
26 ("no" "maybe" "yes" "yes"))
28 (define-optimization-quality let-conversion
29 (if (<= debug speed) 3 0)
30 ("off" "maybe" "on" "on"))
32 (define-optimization-quality verify-arg-count
33 (if (zerop safety) 0 3)
34 ("no" "maybe" "yes" "yes"))
36 (define-optimization-quality merge-tail-calls
37 (if (or (> space debug)
41 ("no" "maybe" "yes" "yes"))
43 (define-optimization-quality insert-debug-catch
44 (if (> debug (max speed space))
47 ("no" "maybe" "yes" "yes"))
49 (define-optimization-quality recognize-self-calls
50 (if (> (max speed space) debug)
53 ("no" "maybe" "yes" "yes"))
55 (define-optimization-quality stack-allocate-dynamic-extent
56 (if (and (> (max speed space) (max debug safety))
60 ("no" "maybe" "yes" "yes"))
62 (define-optimization-quality stack-allocate-vector
63 (cond ((= stack-allocate-dynamic-extent 0) 0)
66 ("no" "maybe" "one page" "yes"))
68 (define-optimization-quality float-accuracy
70 ("degraded" "full" "full" "full"))
72 (define-optimization-quality insert-step-conditions
73 (if (> debug (max speed space compilation-speed))
76 ("no" "no" "partial" "full"))
78 (define-optimization-quality compute-debug-fun
80 ("no" "minimal" "yes" "yes"))
82 (define-optimization-quality preserve-single-use-debug-variables
87 ("no" "no" "no" "yes"))
89 (define-optimization-quality insert-array-bounds-checks
91 ("no" "yes" "yes" "yes"))
93 (define-optimization-quality store-xref-data
97 ("no" "yes" "yes" "yes"))
99 (define-optimization-quality store-coverage-data
101 ("no" "no" "yes" "yes"))