From 7a81a0fd139ec0ddba62eadacbcb8c22e1f0c11f Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Tue, 29 Jul 2003 19:42:32 +0000 Subject: [PATCH] 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 --- lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp | 19 ++++++++++--------- .../SparcV9/LiveVar/FunctionLiveVarInfo.cpp | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp b/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp index 63c20194df0..0e8e0ac41bf 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 diff --git a/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp b/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp index 63c20194df0..0e8e0ac41bf 100644 --- a/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp +++ b/lib/Target/SparcV9/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 -- 2.34.1