$OpenBSD: patch-gcc_rtl_h,v 1.2 2002/09/14 10:14:51 espie Exp $
--- gcc/rtl.h.orig	Sun May 19 11:05:27 2002
+++ gcc/rtl.h	Thu Sep 12 14:51:00 2002
@@ -1517,12 +1517,30 @@ extern rtx find_first_parameter_load	PAR
 
 extern rtx find_use_as_address		PARAMS ((rtx, rtx, HOST_WIDE_INT));
 void init_EXPR_INSN_LIST_cache		PARAMS ((void));
-void free_EXPR_LIST_list 		PARAMS ((rtx *));
-void free_INSN_LIST_list 		PARAMS ((rtx *));
 void free_EXPR_LIST_node 		PARAMS ((rtx));
 void free_INSN_LIST_node 		PARAMS ((rtx));
 rtx alloc_INSN_LIST			PARAMS ((rtx, rtx));
 rtx alloc_EXPR_LIST			PARAMS ((int, rtx, rtx));
+
+/* An INSN_LIST containing all INSN_LISTs allocated but currently unused.  */
+extern rtx unused_insn_list;
+
+/* An EXPR_LIST containing all EXPR_LISTs allocated but currently unused.  */
+extern rtx unused_expr_list;
+
+void free_list PARAMS ((rtx *, rtx *));
+
+#define free_EXPR_LIST_list(p) do { 			\
+	rtx *myp = (p); 				\
+	if (*myp) 					\
+		free_list(myp, &unused_expr_list); 	\
+	} while(0)
+
+#define free_INSN_LIST_list(p) do { 			\
+	rtx *myp = (p); 				\
+	if (*myp) 					\
+		free_list(myp, &unused_insn_list); 	\
+	} while(0)
 
 /* regclass.c */
 
