[llvm-commits] CVS: llvm/include/llvm/Analysis/DataStructure/DataStructure.h
Chris Lattner
lattner at cs.uiuc.edu
Thu Apr 21 09:09:16 PDT 2005
Changes in directory llvm/include/llvm/Analysis/DataStructure:
DataStructure.h updated: 1.92 -> 1.93
---
Log message:
add support for taking the address of free.
---
Diffs of the changes: (+8 -4)
DataStructure.h | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
Index: llvm/include/llvm/Analysis/DataStructure/DataStructure.h
diff -u llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.92 llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.93
--- llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.92 Sat Apr 2 14:08:06 2005
+++ llvm/include/llvm/Analysis/DataStructure/DataStructure.h Thu Apr 21 11:08:59 2005
@@ -126,14 +126,17 @@
DSGraph &getDSGraph(const Function &F) const {
hash_map<Function*, DSGraph*>::const_iterator I =
DSInfo.find(const_cast<Function*>(&F));
- assert(I != DSInfo.end() && "Function not in module!");
- return *I->second;
+ if (I != DSInfo.end())
+ return *I->second;
+ return const_cast<BUDataStructures*>(this)->
+ CreateGraphForExternalFunction(F);
}
DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
EquivalenceClasses<GlobalValue*> &getGlobalECs() { return GlobalECs; }
+ DSGraph &CreateGraphForExternalFunction(const Function &F);
/// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
/// These correspond to the interfaces defined in the AliasAnalysis class.
@@ -234,8 +237,9 @@
DSGraph &getDSGraph(const Function &F) const {
hash_map<Function*, DSGraph*>::const_iterator I =
DSInfo.find(const_cast<Function*>(&F));
- assert(I != DSInfo.end() && "Function not in module!");
- return *I->second;
+ if (I != DSInfo.end()) return *I->second;
+ return const_cast<TDDataStructures*>(this)->
+ getOrCreateDSGraph(const_cast<Function&>(F));
}
DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
More information about the llvm-commits
mailing list