From 8bbe714375308479ffc42986cda219cd9245325d Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Sun, 6 May 1990 23:40:37 +0000 Subject: [PATCH] In CHECK-VOP-REFS, flushed check for all args coming after all results, since they now can come in random orders with the new arg/result :to/:from options to DEFINE-VOP. --- compiler/debug.lisp | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/compiler/debug.lisp b/compiler/debug.lisp index 7f784bf39..3bccf3832 100644 --- a/compiler/debug.lisp +++ b/compiler/debug.lisp @@ -633,29 +633,25 @@ ;;; (defun check-vop-refs (vop) (declare (type vop vop)) - (let ((saw-arg nil)) - (do ((ref (vop-refs vop) (tn-ref-next-ref ref))) - ((null ref)) - (cond - ((find-in #'tn-ref-across ref (vop-args vop)) - (setq saw-arg t)) - ((find-in #'tn-ref-across ref (vop-results vop)) - (when saw-arg - (barf "Result ~S after arg in refs for ~S." ref vop))) - ((not (eq (tn-ref-vop ref) vop)) - (barf "VOP in ~S isn't ~S." ref vop)) - ((find-in #'tn-ref-across ref (vop-temps vop))) - ((tn-ref-write-p ref) - (barf "Stray ref that isn't a read: ~S." ref)) - (t - (let* ((tn (tn-ref-tn ref)) - (temp (find-in #'tn-ref-across tn (vop-temps vop) - :key #'tn-ref-tn))) - (unless temp - (barf "Stray ref with no corresponding temp write: ~S." ref)) - (unless (find-in #'tn-ref-next-ref temp (tn-ref-next-ref ref)) - (barf "Read is after write for temp ~S in refs of ~S." - tn vop))))))) + (do ((ref (vop-refs vop) (tn-ref-next-ref ref))) + ((null ref)) + (cond + ((find-in #'tn-ref-across ref (vop-args vop))) + ((find-in #'tn-ref-across ref (vop-results vop))) + ((not (eq (tn-ref-vop ref) vop)) + (barf "VOP in ~S isn't ~S." ref vop)) + ((find-in #'tn-ref-across ref (vop-temps vop))) + ((tn-ref-write-p ref) + (barf "Stray ref that isn't a read: ~S." ref)) + (t + (let* ((tn (tn-ref-tn ref)) + (temp (find-in #'tn-ref-across tn (vop-temps vop) + :key #'tn-ref-tn))) + (unless temp + (barf "Stray ref with no corresponding temp write: ~S." ref)) + (unless (find-in #'tn-ref-next-ref temp (tn-ref-next-ref ref)) + (barf "Read is after write for temp ~S in refs of ~S." + tn vop)))))) (undefined-value)) -- GitLab