From: sandeep Date: Tue, 18 Dec 2001 04:14:21 +0000 (+0000) Subject: 1) don't mark a liverange as Live across a functioncall if it is X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=5d2e86e88ba1087cccfb52089f53e0feeeb6a38f;p=fw%2Fsdcc 1) don't mark a liverange as Live across a functioncall if it is defined by the function call git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1693 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/SDCClrange.c b/src/SDCClrange.c index df34ff86..376d3caa 100644 --- a/src/SDCClrange.c +++ b/src/SDCClrange.c @@ -578,7 +578,9 @@ rlivePoint (eBBlock ** ebbs, int count) /* if it is live then add the lrange to ic->rlive */ if (lrange->liveFrom <= ic->seq && lrange->liveTo >= ic->seq) { - lrange->isLiveFcall |= (ic->op == CALL || ic->op == PCALL || ic->op == SEND); + lrange->isLiveFcall |= ((lrange->liveFrom < ic->seq) && + (ic->op == CALL || ic->op == PCALL || ic->op == SEND)); + if (ic->op == CALL && lrange->liveFrom == ic->seq) continue; ic->rlive = bitVectSetBit (ic->rlive, lrange->key); } }