aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-10-31 23:41:26 +0000
committerChris Lattner <sabre@nondot.org>2004-10-31 23:41:26 +0000
commit31d3f671be9019cda23ceea70f6d65569cb8dfc2 (patch)
treed0d4aa543f7d7d737784e9dc9fe781ba599ce9b1 /include
parent4148266c9dda70ee08cdfe5043e250a8019f97f6 (diff)
downloadexternal_llvm-31d3f671be9019cda23ceea70f6d65569cb8dfc2.zip
external_llvm-31d3f671be9019cda23ceea70f6d65569cb8dfc2.tar.gz
external_llvm-31d3f671be9019cda23ceea70f6d65569cb8dfc2.tar.bz2
* Do not refer to ActualCallees in CBU, when we can do it locally.
* *DO NOT* print CBU graphs when asked to print our own. This is just FREAKING confusing and misleading: it's better to not print anything. * Simplify and clean up some code * Add some more paranoia assertion checking code that I found to track down this bug: * Fix a nasty bug that was causing us to crash on Prolangs-C++/objects, where we were missing processing some graphs. This hunk is the bugfix: - if (!I->isExternal() && !FoldedGraphsMap.count(I)) + if (!I->isExternal() && !ValMap.count(I)) urg! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17386 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Analysis/DataStructure/EquivClassGraphs.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/llvm/Analysis/DataStructure/EquivClassGraphs.h b/include/llvm/Analysis/DataStructure/EquivClassGraphs.h
index a46da41..8a4b9e2 100644
--- a/include/llvm/Analysis/DataStructure/EquivClassGraphs.h
+++ b/include/llvm/Analysis/DataStructure/EquivClassGraphs.h
@@ -52,6 +52,10 @@ namespace PA {
// FoldedGraphsMap, one graph for each function
hash_map<const Function*, DSGraph*> FoldedGraphsMap;
+
+ /// ActualCallees - The actual functions callable from indirect call sites.
+ ///
+ hash_multimap<Instruction*, Function*> ActualCallees;
// Equivalence class where functions that can potentially be called via the
// same function pointer are in the same class.
@@ -122,9 +126,9 @@ namespace PA {
return *GlobalsGraph;
}
- typedef llvm::BUDataStructures::ActualCalleesTy ActualCalleesTy;
+ typedef hash_multimap<Instruction*, Function*> ActualCalleesTy;
const ActualCalleesTy &getActualCallees() const {
- return CBU->getActualCallees();
+ return ActualCallees;
}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -134,7 +138,7 @@ namespace PA {
/// print - Print out the analysis results...
///
- void print(std::ostream &O, const Module *M) const { CBU->print(O, M); }
+ void print(std::ostream &O, const Module *M) const {}
private:
void buildIndirectFunctionSets(Module &M);