X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=e98d8390a8afd12f2eb22154eb958ae0eda926b2;hb=f22ad70037030c07074327cf239bd84dc17b44b6;hp=c28e37ed0ce7fa887ad25b777fc47cbe4a44f043;hpb=e066009ccdb61d10a6c6a640d59f402112973029;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index c28e37e..e98d839 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -57,7 +57,10 @@ (defun emit-make-value-cell (node block value res) (event make-value-cell-event node) (let ((leaf (tn-leaf res))) - (vop make-value-cell node block value (and leaf (leaf-dynamic-extent leaf)) + (vop make-value-cell node block value + (and leaf (leaf-dynamic-extent leaf) + ;; FIXME: See bug 419 + (policy node (> stack-allocate-value-cells 1))) res))) ;;;; leaf reference @@ -132,13 +135,7 @@ (vop value-cell-ref node block tn res) (emit-move node block tn res)))) (constant - (if (legal-immediate-constant-p leaf) - (emit-move node block (constant-tn leaf) res) - (let* ((name (leaf-source-name leaf)) - (name-tn (emit-constant name))) - (if (policy node (zerop safety)) - (vop fast-symbol-value node block name-tn res) - (vop symbol-value node block name-tn res))))) + (emit-move node block (constant-tn leaf) res)) (functional (ir2-convert-closure node block leaf res)) (global-var @@ -303,7 +300,7 @@ (emit-move node block val tn))))) (global-var (ecase (global-var-kind leaf) - ((:special :global) + ((:special) (aver (symbolp (leaf-source-name leaf))) (vop set node block (emit-constant (leaf-source-name leaf)) val))))) (when locs @@ -1182,6 +1179,7 @@ #!+unwind-to-frame-and-call-vop (when (and (lambda-allow-instrumenting fun) + (not (lambda-inline-expanded fun)) (lambda-return fun) (policy fun (>= insert-debug-catch 2))) (vop sb!vm::bind-sentinel node block)) @@ -1213,6 +1211,7 @@ (returns (tail-set-info (lambda-tail-set fun)))) #!+unwind-to-frame-and-call-vop (when (and (lambda-allow-instrumenting fun) + (not (lambda-inline-expanded fun)) (policy fun (>= insert-debug-catch 2))) (vop sb!vm::unbind-sentinel node block)) (cond