From 6dbdefe25269fbf43204c2ff57997e67818f35b6 Mon Sep 17 00:00:00 2001 From: tecodev Date: Sat, 22 Jan 2005 01:47:18 +0000 Subject: [PATCH] * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization * (OptimizeRegUsage): make sure that there is really no other flow where the first pCode is used git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3645 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 ++++++ src/pic16/pcoderegs.c | 15 +-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8a3f7fb..75a82ee5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-01-22 Daniel Winkler + + * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization + * (OptimizeRegUsage): make sure that there is really no other flow where + the first pCode is used + 2005-01-22 Raphael Neider * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization diff --git a/src/pic16/pcoderegs.c b/src/pic16/pcoderegs.c index 844c8336..807d9c04 100644 --- a/src/pic16/pcoderegs.c +++ b/src/pic16/pcoderegs.c @@ -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"); -- 2.47.2