diff --git a/src/new-cmp/cmppass.lsp b/src/new-cmp/cmppass.lsp index 2b8c1215f..9c24669c6 100644 --- a/src/new-cmp/cmppass.lsp +++ b/src/new-cmp/cmppass.lsp @@ -61,6 +61,10 @@ (in-package "COMPILER") +(defparameter *dump-output* (open "dump.log" :direction :output + :if-exists :supersede + :if-does-not-exist :create)) + (defun execute-pass (pass) (format *dump-output* "~&;;; Executing pass ~A" pass) (loop with pending = (list *top-level-forms*) @@ -71,6 +75,24 @@ do (setf (fun-lambda f) (funcall pass f (fun-lambda f)) pending (append (fun-child-funs f) pending)))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; OUTPUT C1FORMS +;;; + +(defun pprint-c1form (f &optional (stream t)) + (cond ((c1form-p f) + (format stream "~&~4T~16A~4T~{~A ~}" (c1form-name f) (c1form-args f))) + ((tag-p f) + (format stream "~&~A / ~A:" (tag-name f) (tag-label f))) + (t + (format stream "~&;;; Unknown form ~A" f))) + (force-output stream) + f) + +(defun pprint-c1forms (forms &optional (stream t)) + (loop for f in forms do (pprint-c1form f stream))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; DELETE UNUSED FORMS @@ -201,7 +223,7 @@ forms are also suppressed." (defun pass-consistency (function forms) "We verify that all used variables that appear in a form contain this form in its read/set nodes, and add other consistency checks." - ;(pprint-c1forms forms) + (pprint-c1forms forms *dump-output*) (labels ((in-read-set-nodes (tree form) (cond ((var-p tree) (or (member form (var-read-nodes tree) :test #'eq)