From 29c86ea51b01e3cd475150cf5850b40d2d0ff0e5 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Thu, 16 Aug 1990 16:14:52 +0000 Subject: [PATCH] Added new DELETE-FUNCTIONAL interface so that we can delete functions that were never referenced. Proclaimed the "GENERIC LIST" functions inline so that they result in reasonable code. --- compiler/ir1util.lisp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/compiler/ir1util.lisp b/compiler/ir1util.lisp index d6ae547c9..bc14e6ada 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) -- GitLab