1.0.29.3: better reporting for failure to stack allocate
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 5 Jun 2009 13:08:35 +0000 (13:08 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 5 Jun 2009 13:08:35 +0000 (13:08 +0000)
commit09ba205d5ff72b9f4b1ffcf8743809c01a9c69e5
treefa023eb6b678fc30e4ae0ce0327b246a8235ba8c
parentcd23187a89f532f7b57e88b5392a7905e6ae3276
1.0.29.3: 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.
NEWS
src/compiler/ir1opt.lisp
src/compiler/ir1util.lisp
src/compiler/physenvanal.lisp
src/compiler/x86-64/macros.lisp
src/compiler/x86/macros.lisp
tests/dynamic-extent.impure.lisp
version.lisp-expr