(comp-with-sp (if dst-n dst-n (comp-sp))
(let ((src-slot (comp-slot-n src-n)))
(cl-assert src-slot)
- ;; FIXME id should encrease here.
- (setf (comp-slot)
- (copy-sequence src-slot))
- (setf (comp-mvar-slot (comp-slot)) (comp-sp))
(comp-emit `(set ,(comp-slot) ,src-slot)))))
(defun comp-emit-annotation (str)
(comp-emit-jump block-name))
;; Set this a currently compiled block.
(setf comp-block (gethash block-name blocks))
- ;; Every new block we are forced to wipe out all the frame.
- ;; This will be optimized by proper flow analysis.
- (setf (comp-limplify-frame comp-pass)
- (comp-new-frame (comp-func-frame-size comp-func)))
;; If we are landing here form a recorded branch adjust sp accordingly.
(setf (comp-sp)
(comp-block-sp (gethash block-name blocks)))
(cl-defstruct (comp-ssa (:copier nil))
"Support structure used while SSA renaming."
- (frame (comp-new-frame (comp-func-frame-size comp-func)) :type vector
+ (frame (comp-new-frame (comp-func-frame-size comp-func) t) :type vector
:documentation "Vector of mvars."))
(defun comp-ssa-rename-insn (insn slot-n)