This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Post-hashtable cleanup


This was approved by Mark a couple of days ago, but I've not applied
it yet because of all the x86 regressions that have appeared recently.

However, I'm now pretty sure it's harmless, so I'm going to apply it.

Neil.

	* c-lex.c (c_lex): Just cast cpp's hashnode to gcc's one.
	* stringpool.c:	(IS_FE_IDENT, make_identifier): Delete.
	(maybe_get_identifier): Update.
	* tree.h (make_identifier): Delete.

Index: c-lex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-lex.c,v
retrieving revision 1.138
diff -u -p -r1.138 c-lex.c
--- c-lex.c	2001/05/20 06:26:32	1.138
+++ c-lex.c	2001/05/22 07:17:23
@@ -997,12 +997,7 @@ c_lex (value)
       goto retry;
       
     case CPP_NAME:
-      {
-	tree node = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok.val.node));
-	if (TREE_CODE (node) != IDENTIFIER_NODE)
-	  make_identifier (node);
-	*value = node;
-      }
+      *value = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok.val.node));
       break;
 
     case CPP_INT:
Index: stringpool.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stringpool.c,v
retrieving revision 1.7
diff -u -p -r1.7 stringpool.c
--- stringpool.c	2001/05/20 08:13:32	1.7
+++ stringpool.c	2001/05/22 07:17:24
@@ -35,8 +35,6 @@ Software Foundation, 59 Temple Place - S
 #include "flags.h"
 #include "toplev.h"
 
-#define IS_FE_IDENT(NODE) (TREE_CODE (NODE) == IDENTIFIER_NODE)
-
 /* The "" allocated string.  */
 const char empty_string[] = "";
 
@@ -99,23 +97,6 @@ ggc_alloc_string (contents, length)
   return obstack_finish (&string_stack);
 }
 
-/* NODE is an identifier known to the preprocessor.  Make it known to
-   the front ends as well.  */
-
-void
-make_identifier (node)
-     tree node;
-{
-  /* If this identifier is longer than the clash-warning length,
-     do a brute force search of the entire table for clashes.  */
-  if (warn_id_clash && do_identifier_warnings
-      && IDENTIFIER_LENGTH (node) >= id_clash_len)
-    ht_forall (ident_hash, (ht_cb) scan_for_clashes,
-	       IDENTIFIER_POINTER (node));
-
-  TREE_SET_CODE (node, IDENTIFIER_NODE);
-}
-
 /* Return an IDENTIFIER_NODE whose name is TEXT (a null-terminated string).
    If an identifier with that name has previously been referred to,
    the same node is returned this time.  */
@@ -141,17 +122,11 @@ maybe_get_identifier (text)
      const char *text;
 {
   hashnode ht_node;
-  tree node;
-  size_t length = strlen (text);
 
   ht_node = ht_lookup (ident_hash, (const unsigned char *) text,
-		       length, HT_NO_INSERT);
+		       strlen (text), HT_NO_INSERT);
   if (ht_node)
-    {
-      node = HT_IDENT_TO_GCC_IDENT (ht_node);
-      if (IS_FE_IDENT (node))
-	return node;
-    }
+    return HT_IDENT_TO_GCC_IDENT (ht_node);
 
   return NULL_TREE;
 }
@@ -167,8 +142,7 @@ scan_for_clashes (pfile, h, text)
 {
   tree node = HT_IDENT_TO_GCC_IDENT (h);
 
-  if (IS_FE_IDENT (node)
-      && IDENTIFIER_LENGTH (node) >= id_clash_len
+  if (IDENTIFIER_LENGTH (node) >= id_clash_len
       && !memcmp (IDENTIFIER_POINTER (node), text, id_clash_len))
     {
       warning ("\"%s\" and \"%s\" identical in first %d characters",
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.240
diff -u -p -r1.240 tree.h
--- tree.h	2001/05/22 03:03:26	1.240
+++ tree.h	2001/05/22 07:17:36
@@ -1958,10 +1958,6 @@ extern tree make_tree_vec		PARAMS ((int)
 
 extern tree get_identifier		PARAMS ((const char *));
 
-/* NODE is an identifier known to the preprocessor.  Make it known to
-   the front ends as well.  */
-extern void make_identifier		PARAMS ((tree node));
-
 /* If an identifier with the name TEXT (a null-terminated string) has
    previously been referred to, return that node; otherwise return
    NULL_TREE.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]