From: Alexey D. <ade...@us...> - 2003-08-19 09:24:40
|
Update of /cvsroot/sbcl/sbcl/src/compiler In directory sc8-pr-cvs1:/tmp/cvs-serv25320/src/compiler Modified Files: ir1tran-lambda.lisp policies.lisp Log Message: 0.8.2.43: * New optimization policy: RECOGNIZE-SELF-CALLS; * on x86 DATA-VECTOR-REF/SIMPLE-BASE-STRING does not use AL temporary. Index: ir1tran-lambda.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir1tran-lambda.lisp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ir1tran-lambda.lisp 17 Aug 2003 17:17:07 -0000 1.7 +++ ir1tran-lambda.lisp 19 Aug 2003 09:24:37 -0000 1.8 @@ -919,7 +919,10 @@ (setf (defined-fun-functional defined-fun-res) res) (unless (eq (defined-fun-inlinep defined-fun-res) :notinline) - (substitute-leaf res defined-fun-res)) + (substitute-leaf-if + (lambda (ref) + (policy ref (> recognize-self-calls 0))) + res defined-fun-res)) res) (apply #'ir1-convert-lambda `(lambda ,@(cddr thing)) :debug-name name args)))) Index: policies.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/policies.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- policies.lisp 12 Jun 2003 06:41:14 -0000 1.2 +++ policies.lisp 19 Aug 2003 09:24:37 -0000 1.3 @@ -43,3 +43,9 @@ 3 0) ("no" "maybe" "yes" "yes")) + +(define-optimization-quality recognize-self-calls + (if (> (max speed space) debug) + 3 + 0) + ("no" "maybe" "yes" "yes")) |