Update of /cvsroot/sbcl/sbcl/src/compiler/x86
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23509/src/compiler/x86
22.214.171.124: better reporting for failure to stack allocate
* If the LVAR has no uses left, it is not good for DX.
* When flushing the destination of a DX lvar, note that its uses will
not be stack allocated.
* Pull out the failure to stack allocate reporting into
NOTE-NO-STACK-ALLOCATION, relax the filter to allow complaints
about non-constant REFs, and omit notes for flushed and flushable
combinations. TODO: the compiler should know about non-consing
functions, so that it can avoid inane notes like "could not stack
allocate the result of (CAR X)" should someone declare that DX.
* Muffle compiler notes from WITH-PINNED-OBJECTS, since our paranoid
use of DX-LET there is liable to cause lots of confusing "unable to
stack allocate" notes.
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/macros.lisp,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- macros.lisp 13 Apr 2009 20:00:21 -0000 1.57
+++ macros.lisp 5 Jun 2009 13:08:35 -0000 1.58
@@ -544,6 +544,7 @@
;; BODY is stuffed in a function to preserve the lexical
`(flet ((,wpo () (progn ,@body)))
+ (declare (muffle-conditions compiler-note))
;; PINS are dx-allocated in case the compiler for some
;; unfathomable reason decides to allocate value-cells
;; for them -- since we have DX value-cells on x86oid