summaryrefslogtreecommitdiff
path: root/lib/Analysis
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2003-07-29 19:42:32 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2003-07-29 19:42:32 +0000
commit7a81a0fd139ec0ddba62eadacbcb8c22e1f0c11f (patch)
tree7a3c76c42fe2d7e316992fc70f9ad0801ea29a90 /lib/Analysis
parentceb7d2f4f8bb220990b9392f4dcf1eff7fd5690c (diff)
downloadllvm-7a81a0fd139ec0ddba62eadacbcb8c22e1f0c11f.tar.gz
llvm-7a81a0fd139ec0ddba62eadacbcb8c22e1f0c11f.tar.bz2
llvm-7a81a0fd139ec0ddba62eadacbcb8c22e1f0c11f.tar.xz
Don't require a BB to look-up live variables, unless they may need to
be recomputed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7388 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r--lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp b/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp
index 63c20194df..0e8e0ac41b 100644
--- a/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp
+++ b/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp
@@ -180,28 +180,29 @@ void FunctionLiveVarInfo::releaseMemory() {
const ValueSet &
FunctionLiveVarInfo::getLiveVarSetBeforeMInst(const MachineInstr *MInst,
const BasicBlock *BB) {
- if (const ValueSet *LVSet = MInst2LVSetBI[MInst]) {
- return *LVSet; // if found, just return the set
- } else {
- calcLiveVarSetsForBB(BB); // else, calc for all instrs in BB
- return *MInst2LVSetBI[MInst];
+ const ValueSet *LVSet = MInst2LVSetBI[MInst];
+ if (LVSet == NULL && BB != NULL) { // if not found and BB provided
+ calcLiveVarSetsForBB(BB); // calc LVSet for all instrs in BB
+ LVSet = MInst2LVSetBI[MInst];
}
+ return *LVSet;
}
//-----------------------------------------------------------------------------
// Gives live variable information after a machine instruction
//-----------------------------------------------------------------------------
+
const ValueSet &
FunctionLiveVarInfo::getLiveVarSetAfterMInst(const MachineInstr *MI,
const BasicBlock *BB) {
- if (const ValueSet *LVSet = MInst2LVSetAI[MI]) {
- return *LVSet; // if found, just return the set
- } else {
- calcLiveVarSetsForBB(BB); // else, calc for all instrs in BB
+ const ValueSet *LVSet = MInst2LVSetAI[MI];
+ if (LVSet == NULL && BB != NULL) { // if not found and BB provided
+ calcLiveVarSetsForBB(BB); // calc LVSet for all instrs in BB
return *MInst2LVSetAI[MI];
}
+ return *LVSet;
}
// This function applies a machine instr to a live var set (accepts OutSet) and