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