1.0.44.15: ir2: Skip value-cell allocation where possible.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:45:23 +0000 (19:45 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:45:23 +0000 (19:45 +0000)
commitc097dfd6528faa7efb98d5e021711a9969a67212
tree0eda4fec2a385a6ab5c3d9ba487dee37d65998e3
parent2c3112ebb0945849876108dccfdedf4c19678ea9
1.0.44.15: ir2: Skip value-cell allocation where possible.

  * Expose the new ANCESTOR-FRAME VOPs in package-data.lisp-expr.

  * When creating TNs for closed-over LAMBDA-VARs with "implicit"
VALUE-CELLs, force the TNs to be allocated on the control-stack,
and to be live over the entire extent of the PHYSENV.

  * When translating a REF or SET node for such LAMBDA-VARs from
a NODE in a CLAMBDA with a different PHYSENV, use the new VOPs to
access the LAMBDA-VAR.

  * When setting up a closure for such LAMBDA-VARs from a NODE in
a CLAMBDA with the same PHYSENV as the variable, use the new
CLOSURE-INIT-FROM-FP VOP to stash the frame pointer instead of a
VALUE-CELL or the current value of the variable.

  * When setting up the closure environment for a local-call that
closes over such a LAMBDA-VAR, and the call is being made from a
NODE in a CLAMBDA with the same PHYSENV as the variable, store the
current frame-pointer instead of a VALUE-CELL or the current value
of the variable.
package-data-list.lisp-expr
src/compiler/gtn.lisp
src/compiler/ir2tran.lisp
version.lisp-expr