]> git.saurik.com Git - bison.git/commitdiff
* src/closure.c (closure): No longer optimize the special case
authorAkim Demaille <akim@epita.fr>
Wed, 28 Nov 2001 14:52:50 +0000 (14:52 +0000)
committerAkim Demaille <akim@epita.fr>
Wed, 28 Nov 2001 14:52:50 +0000 (14:52 +0000)
where all the bits of `ruleset[r]' are set to 0, to make the code
clearer.

ChangeLog
src/closure.c

index 2d1da89f4cca4558bf25b809d319b56189dea860..a4cf740657f2a6e4628bdb1d2bf8a83d8dc2734c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): No longer optimize the special case
+       where all the bits of `ruleset[r]' are set to 0, to make the code
+       clearer.
+
+       
 2001-11-28  Akim Demaille  <akim@epita.fr>
 
        * src/closure.c (closure): `r' and `c' are new variables, used to
index 06c7b5324da4ff6e4ce239591a66d25a35c07a2a..ad3a5be7af70a3870d6cbed9905646518285cd22 100644 (file)
@@ -273,31 +273,24 @@ closure (short *core, int n)
   c = 0;
   for (r = 0; r < rulesetsize; ++r)
     {
-      if (ruleset[r] == 0)
-       {
-         ruleno += BITS_PER_WORD;
-       }
-      else
-       {
-         int b;
+      int b;
 
-         for (b = 0; b < BITS_PER_WORD; b++)
+      for (b = 0; b < BITS_PER_WORD; b++)
+       {
+         if (ruleset[r] & (1 << b))
            {
-             if (ruleset[r] & (1 << b))
+             itemno = rule_table[ruleno].rhs;
+             while (c < n && core[c] < itemno)
                {
-                 itemno = rule_table[ruleno].rhs;
-                 while (c < n && core[c] < itemno)
-                   {
-                     itemset[itemsetsize] = core[c];
-                     itemsetsize++;
-                     c++;
-                   }
-                 itemset[itemsetsize] = itemno;
+                 itemset[itemsetsize] = core[c];
                  itemsetsize++;
+                 c++;
                }
-
-             ruleno++;
+             itemset[itemsetsize] = itemno;
+             itemsetsize++;
            }
+
+         ruleno++;
        }
     }