anchor.diff:  		     (let ((a (sicl-mir:make-assignment-instruction
   			       constant temp instruction)))
   		       (setf (gethash a table) t)
  +		       (setf modify-p t)
   		       (push a legitimate-users)
   		       (insert-instruction-before a instruction))
   		     (mapc #'traverse (successors instruction))))))
  
positive.code: 
  (add-dependencies 'instruction-ownership
  		  '(instruction-info))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 		   (nsubstitute temp constant (sicl-mir:inputs instruction)
  				:test #'eq))
  		 (mapc #'traverse (successors instruction)))))
        (traverse first-instruction))
      modify-p))
  
  (defun cache-constants (program)
    (let ((modify-p nil))
      (map-locations
       (lambda (location)
         (when (typep location 'sicl-mir:constant-input)
  	 (loop for procedure in (procedures program)
  	       for first = (initial-instruction procedure)
  	       do (setf modify-p
  			(or (cache-constant location first)))))))
      (when modify-p
        (touch program 'instruction-graph))))
  
  (set-processor 'cached-constants 'cache-constants)
  
  (add-dependencies 'cached-constants
  		  '(no-constant-temporaries))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  