diff --git a/compiler/ir1util.lisp b/compiler/ir1util.lisp index d6ae547c9d503b4a8b83581b1b07d561453f7ff8..bc14e6ada0e35faea7654db53766575ef01b0087 100644 --- a/compiler/ir1util.lisp +++ b/compiler/ir1util.lisp @@ -557,6 +557,20 @@ inlines (undefined-value)) +;;; DELETE-FUNCTIONAL -- Interface +;;; +;;; This function deletes functions that have no references. This need only +;;; be called on functions that never had any references, since otherwise +;;; DELETE-REF will handle the deletion. +;;; +(defun delete-functional (fun) + (assert (null (leaf-refs fun))) + (etypecase fun + (optional-dispatch (delete-optional-dispatch fun)) + (clambda (delete-lambda fun))) + (undefined-value)) + + ;;; Delete-Lambda -- Internal ;;; ;;; Deal with deleting the last reference to a lambda. Since there is only @@ -1565,6 +1579,8 @@ inlines ;;;; Generic list (?) functions: +(proclaim '(inline find-in position-in map-in)) + ;;; Find-In -- Interface ;;; (defun find-in (next element list &key (key #'identity)