anchor.diff: -(cl:in-package #:cleavir-mir-interpreter)
  +(cl:in-package #:cleavir-hir-interpreter)
   
   ;;; The first argument to this function is an instruction that has a
   ;;; single successor.  Whether a GO is required at the end of this
  
positive.code: (defvar *vars*)
  
  (defun translate-datum (datum)
    (if (typep datum 'cleavir-mir:constant-input)
        `(quote ,(cleavir-mir:value datum))
        (let ((var (gethash datum *vars*)))
  	(when (null var)
  	  (setf var (gensym))
  
negative.code: 	     (let ((tag (gethash instruction *tags*)))
  	       (when (null tag)
  		 (setf (gethash instruction *tags*) (gensym))
  		 (let ((inputs (loop for i in (cleavir-ir:inputs instruction)
  				     collect (translate-datum i)))
  		       (outputs (loop for o in (cleavir-ir:outputs instruction)
  				      collect (translate-datum o))))
  		   (ecase (length (cleavir-ir:successors instruction))
  		     (0
  		      (list (translate-simple-instruction
  			     instruction inputs outputs)))
  		     (1
  		      (let* ((succ (first (cleavir-ir:successors instruction)))
  			     (preds (cleavir-ir:predecessors succ)))
  			(if (eq (gethash instruction *ownerships*)
  				(gethash succ *ownerships*))
  			    (if (gethash succ *tags*)
  