0.9.18.50:
authorJuho Snellman <jsnell@iki.fi>
Tue, 14 Nov 2006 03:59:52 +0000 (03:59 +0000)
committerJuho Snellman <jsnell@iki.fi>
Tue, 14 Nov 2006 03:59:52 +0000 (03:59 +0000)
commit8e7fa9c4b2c1fd2353414d726efad1607f6badd1
tree454190285f054394c75a4f8c75ea252551da8519
parent670d28c10c178142146f6916c5fa0967732f3a8f
0.9.18.50:
        Various improvements to SB-SPROF (more speed, reliability and
        usability, less consing and source code).

        * Do the pc -> debug-info mapping in the signal handler, rather
          than just storing the PCs and waiting until REPORT is called.
        * Remove huge swathes of code for adjusting the PCs after GCs
          (I don't think this had actually worked in quite a while, anyway).
          This removes the slowdowns for long profiling runs.
        * Show samples from assembly routines in the report, rather than
          just grouping them all under "no debug information".
        * Clean up SB-C::TL-XEPs etc. from function names
        * Add an UNWIND-PROTECT to ensure WITH-PROFILING always stops
          profiling.
        * Make sigprof-handler mostly non-consing. (There's still a
          few words of consing / signal handler invocation, but that happens
          for all Lisp-side signal handlers).

        For the last point, some core SBCL changes are also needed:

        * Make a bunch of signal-context accessors inlineable to reduce
          SAP to pointer conversions
        * Restructure x86-call-context to always return SAPs in certain
          return value positions, to allow the compiler to keep them
          in registers. Rewrite recursion with a local function.
contrib/sb-sprof/sb-sprof.lisp
src/code/debug-int.lisp
src/code/foreign.lisp
src/code/x86-64-vm.lisp
src/code/x86-vm.lisp
version.lisp-expr