diff --git a/compiler/main.lisp b/compiler/main.lisp
index 232115e3d475278de7153fa7390bc95ad4d23820..f5156cd792d441a06d50f90733407f8dbe47dcde 100644
--- a/compiler/main.lisp
+++ b/compiler/main.lisp
@@ -146,6 +146,26 @@
 	      (truncate (cddr info) (cadr info)))))
   (values))
 
+(defun save-vop-counts (filename)
+  (with-open-file (stream filename :direction :output :if-exists :supersede)
+    (maphash #'(lambda (key value)
+		 (print (cons key value) stream))
+	     *vop-counts*)))
+
+(defun augment-vop-counts (filename)
+  (with-open-file (stream filename)
+    (loop
+      (let ((stuff (read stream nil :eof)))
+	(when (eq stuff :eof)
+	  (return))
+	(multiple-value-bind (entry found) (gethash (car stuff) *vop-counts*)
+	  (cond (found
+		 (incf (car entry) (cadr stuff))
+		 (incf (cdr entry) (cddr stuff)))
+		(t
+		 (setf (gethash (car stuff) *vop-counts*)
+		       (cdr stuff)))))))))
+
 
 ;;;; Component compilation: