* .version: bumped version number to 2.4.8
[fw/sdcc] / src / pic16 / pcoderegs.c
index 844c83363e4b020e15df9c9d3c39a504138bf92f..807d9c043558bdc39a156a180e5acc1f74790808 100644 (file)
@@ -431,7 +431,6 @@ static void Remove2pcodes(pCode *pcflow, pCode *pc1, pCode *pc2, regs *reg, int
 /*-----------------------------------------------------------------*
  *
  *-----------------------------------------------------------------*/
-#if 0
 static int regUsedinRange(pCode *pc1, pCode *pc2, regs *reg)
 {
   int i=0;
@@ -466,10 +465,6 @@ static int regUsedinRange(pCode *pc1, pCode *pc2, regs *reg)
  *-----------------------------------------------------------------*/
 static int pCodeOptime2pCodes(pCode *pc1, pCode *pc2, pCode *pcfl_used, regs *reg, int can_free, int optimize_level)
 {
-  // pc1 and pc2 have to given in execution order -- this not guaranteed.
-  // The check on pcX->seq does not help much as (nearly) all seq's are
-  // zero at the moment...
-
   pCode *pct1, *pct2;
   regs  *reg1, *reg2;
 
@@ -670,14 +665,6 @@ static int pCodeOptime2pCodes(pCode *pc1, pCode *pc2, pCode *pcfl_used, regs *re
 
   return (total_registers_saved != t);
 }
-#else
-
-static int pCodeOptime2pCodes(pCode *pc1, pCode *pc2, pCode *pcfl_used, regs *reg, int can_free, int optimize_level)
-{
-  return 0;
-}
-
-#endif
 
 /*-----------------------------------------------------------------*
  * void pCodeRegOptimeRegUsage(pBlock *pb) 
@@ -735,7 +722,7 @@ static void OptimizeRegUsage(set *fregs, int optimize_multi_uses, int optimize_l
        */
 
        //fprintf(stderr," used only twice\n");
-       if(pcfl_used->seq == pcfl_assigned->seq) {
+       if(pcfl_used->seq == pcfl_assigned->seq && !(setNextItem(reg->reglives.usedpFlows)) && !(setNextItem(reg->reglives.assignedpFlows))) {
 
          //fprintf(stderr, "  and used in same flow\n");