* src/SDCCast.c (decorateType): don't decorate/process parms twice,
[fw/sdcc] / src / SDCCcflow.c
index 2da48baa65430991aebd56a1ed34b4d16e0d74a4..0b307797ef5ac2cfa3da2c8547aff70af1917a66 100644 (file)
@@ -1,9 +1,3 @@
-//#define LIVERANGEHUNT
-#ifdef LIVERANGEHUNT
-  #define LRH(x) x
-#else
-  #define LRH(x)
-#endif
 /*-------------------------------------------------------------------------
 
   SDCCcflow.c - source file for control flow analysis
@@ -139,14 +133,8 @@ eBBSuccessors (eBBlock ** ebbs, int count)
                }
              else
                {
-                 int j=i;
-                 while (j--) {
-                   if (ebbs[j]->ech && ebbs[j]->ech->op==IFX &&
-                       (isSymbolEqual(IC_TRUE(ebbs[j]->ech), ebbs[i]->entryLabel) ||
-                        isSymbolEqual(IC_FALSE(ebbs[j]->ech), ebbs[i]->entryLabel))) {
-                     LRH(printf ("%s has a conditional exit from %s\n", ebbs[i]->entryLabel->name, ebbs[j]->entryLabel->name));
-                     ebbs[i]->hasConditionalExit=1;
-                   }
+                 if (i && ebbs[i-1]->ech && ebbs[i-1]->ech->op==IFX) {
+                   ebbs[i]->isConditionalExitFrom=ebbs[i-1];
                  }
                }
            }                   /* no instructions in the block */
@@ -293,7 +281,7 @@ immedDom (eBBlock ** ebbs, eBBlock * ebp)
     if (loop->dfnum > idom->dfnum)
       idom = loop;
 
-  setToNull ((void **) &iset);
+  setToNull ((void *) &iset);
   return idom;
 
 }
@@ -408,10 +396,10 @@ computeControlFlow (eBBlock ** ebbs, int count, int reSort)
 
   for (i = 0; i < count; i++)
     {
-      setToNull ((void **) &ebbs[i]->predList);
-      setToNull ((void **) &ebbs[i]->domVect);
-      setToNull ((void **) &ebbs[i]->succList);
-      setToNull ((void **) &ebbs[i]->succVect);
+      setToNull ((void *) &ebbs[i]->predList);
+      setToNull ((void *) &ebbs[i]->domVect);
+      setToNull ((void *) &ebbs[i]->succList);
+      setToNull ((void *) &ebbs[i]->succVect);
       ebbs[i]->visited = 0;
       ebbs[i]->dfnum = 0;
     }
@@ -420,7 +408,7 @@ computeControlFlow (eBBlock ** ebbs, int count, int reSort)
     /* sort it back by block number */
     qsort (ebbs, saveCount, sizeof (eBBlock *), bbNumCompare);
 
-  setToNull ((void **) &graphEdges);
+  setToNull ((void *) &graphEdges);
   /* this will put in the  */
   /* successor information for each blk */
   eBBSuccessors (ebbs, count);