anchor.diff:  (cl:in-package #:cleavir-hir-transformations)
  +
  +;;;; Eliminating superfluous temporaries is a bit tricky.  We can not
  +;;;; guarantee that this function works as expected at the moment.
   
   (defun eliminate-superfluous-temporaries (initial-instruction)
     ;; Make sure we are working with an up-to-date graph, both with
  
positive.code: 			     (gethash (car (cleavir-ir:defining-instructions input)) owners))
  			 (not (gethash input superfluous-locations))
  			 (typep output 'cleavir-ir:lexical-location)
  			 (= (length (cleavir-ir:using-instructions output)) 1)
  			 (eq (gethash instruction owners)
  			     (gethash (car (cleavir-ir:using-instructions output)) owners))
  			 (not (gethash output essential-locations)))))
  
negative.code: 	       (declare (ignore value))
  	       (let* ((input (car (cleavir-ir:inputs instruction)))
  		      (output (car (cleavir-ir:outputs instruction)))
  		      (using-instructions (cleavir-ir:using-instructions output)))
  		 (loop for using-instruction in using-instructions
  		       do (nsubstitute input output (cleavir-ir:inputs using-instruction)))
  		 (setf (cleavir-ir:using-instructions input) using-instructions)
  		 (cleavir-ir:delete-instruction instruction)))
  	     superfluous-instructions)
      (cleavir-ir:set-predecessors initial-instruction)
  