Compiler support for specialised implicit value cells
authorPaul Khuong <pvk@pvk.ca>
Tue, 21 Jun 2011 03:52:45 +0000 (23:52 -0400)
committerPaul Khuong <pvk@pvk.ca>
Tue, 21 Jun 2011 03:52:45 +0000 (23:52 -0400)
commit56a2dbbb9d79a62db99cc4061e50fca74fcf907e
tree0ab50c9c55da71d72aa4c7ff6d03f888b47bf0f5
parent8b6a52f9f11453464ee429797a8593aac4e4bfa7
Compiler support for specialised implicit value cells

 Enables the use of non-T stack TNs for closed-over dynamic-extent variables.

 SB!VM:PRIMITIVE-TYPE-INDIRECT-CELL-TYPE takes a primitive-type and returns
 NIL, or a list of 4 values:
  - the primitive type of the implicit indirect value cell
  - the SC of that cell
  - a function that takes the NODE, BLOCK, FP, VALUE and RESULT, and
    emits a reference to that cell.
  - a function that takes the NODE, BLOCK, FP, NEW-VALUE and VALUE, and
    emits a write to that cell.

 Some correctness tests to make sure codegen is correct (without verifying
 DXness).
package-data-list.lisp-expr
src/compiler/alpha/vm.lisp
src/compiler/gtn.lisp
src/compiler/hppa/vm.lisp
src/compiler/ir2tran.lisp
src/compiler/mips/vm.lisp
src/compiler/ppc/vm.lisp
src/compiler/sparc/vm.lisp
src/compiler/x86-64/vm.lisp
src/compiler/x86/vm.lisp
tests/dynamic-extent.impure.lisp