]> git.gag.com Git - fw/sdcc/blobdiff - src/SDCCdflow.c
options.model specific fixes
[fw/sdcc] / src / SDCCdflow.c
index 971ed998fa12e8694c66c55b2d8c95d040f1d21a..76c2267a77b20d8dd4c1b4fccbc252d01d377de9 100644 (file)
@@ -182,10 +182,9 @@ void computeDataFlow (eBBlock **ebbs, int count)
            /* indefitions are easy just merge them by union */
            /* these are the definitions that can possibly   */
            /* reach this block                              */
-           firstTime = 1;          
+           firstTime = 1;
            applyToSet(pred,mergeInDefs,ebbs[i],&firstTime);
 
-
            /* if none of the edges coming to this block */
            /* dominate this block then add the immediate dominator */
            /* of this block to the list of predecessors */
@@ -205,9 +204,10 @@ void computeDataFlow (eBBlock **ebbs, int count)
            /* figure out the incoming expressions */
            /* this is a little more complex       */       
            setToNull ((void **)&ebbs[i]->inExprs);
-           firstTime = 1;
-           applyToSet(pred,mergeInExprs,ebbs[i],&firstTime); 
-
+           if (optimize.global_cse) {
+                   firstTime = 1;
+                   applyToSet(pred,mergeInExprs,ebbs[i],&firstTime); 
+           }
            setToNull ((void **)&pred);
            
            /* do cse with computeOnly flag set to TRUE */