OSDN Git Service

* cse.c (cse_basic_block): Don't include NOTE insns in the count
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Jun 1998 20:20:21 +0000 (20:20 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Jun 1998 20:20:21 +0000 (20:20 +0000)
that is used to decide whether or not it is time to erase the
equivalence table.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20548 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cse.c

index e271a47..d68654b 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jun 17 20:20:48 1998  Mark Mitchell  <mark@markmitchell.com>
+
+       * cse.c (cse_basic_block): Don't include NOTE insns in the count
+       that is used to decide whether or not it is time to erase the
+       equivalence table.
+
 Wed Jun 17 18:30:43 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 
 
         * rs6000/linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define to zero.
index 6d2e8c9..f104ff5 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -8507,16 +8507,20 @@ cse_basic_block (from, to, next_branch, around_loop)
 
   for (insn = from; insn != to; insn = NEXT_INSN (insn))
     {
-      register enum rtx_code code;
+      register enum rtx_code code = GET_CODE (insn);
       int i;
       struct table_elt *p, *next;
 
-      /* If we have processed 1,000 insns, flush the hash table to avoid
-        extreme quadratic behavior.
+      /* If we have processed 1,000 insns, flush the hash table to
+        avoid extreme quadratic behavior.  We must not include NOTEs
+        in the count since there may be more or them when generating
+        debugging information.  If we clear the table at different
+        times, code generated with -g -O might be different than code
+        generated with -O but not -g.
 
         ??? This is a real kludge and needs to be done some other way.
         Perhaps for 2.9.  */
-      if (num_insns++ > 1000)
+      if (code != NOTE && num_insns++ > 1000)
        {
          for (i = 0; i < NBUCKETS; i++)
            for (p = table[i]; p; p = next)
@@ -8555,7 +8559,6 @@ cse_basic_block (from, to, next_branch, around_loop)
            }
        }
         
-      code = GET_CODE (insn);
       if (GET_MODE (insn) == QImode)
        PUT_MODE (insn, VOIDmode);