[llvm-commits] CVS: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp
Chris Lattner
lattner at cs.uiuc.edu
Wed Oct 16 23:25:00 PDT 2002
Changes in directory llvm/lib/Analysis/DataStructure:
BottomUpClosure.cpp updated: 1.14 -> 1.15
---
Log message:
* Add data structures and code to track the call sites for each function
---
Diffs of the changes:
Index: llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp
diff -u llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.14 llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.15
--- llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp:1.14 Thu Oct 3 16:55:28 2002
+++ llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp Wed Oct 16 23:24:08 2002
@@ -10,9 +10,7 @@
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Analysis/DSGraph.h"
#include "llvm/Module.h"
-//#include "llvm/DerivedTypes.h"
#include "Support/Statistic.h"
-//#include <set>
using std::map;
static RegisterAnalysis<BUDataStructures>
@@ -32,6 +30,9 @@
// our memory... here...
//
void BUDataStructures::releaseMemory() {
+ // Delete all call site information
+ CallSites.clear();
+
for (map<const Function*, DSGraph*>::iterator I = DSInfo.begin(),
E = DSInfo.end(); I != E; ++I)
delete I->second;
@@ -151,6 +152,10 @@
for (unsigned c = 0; c != Callees.size(); ++c) {
// Must be a function type, so this cast MUST succeed.
Function &FI = cast<Function>(*Callees[c]);
+
+ // Record that this is a call site of FI.
+ CallSites[&FI].push_back(CallSite(F, Call));
+
if (&FI == &F) {
// Self recursion... simply link up the formal arguments with the
// actual arguments...
@@ -165,6 +170,7 @@
// Erase the entry in the callees vector
Callees.erase(Callees.begin()+c--);
+
} else if (!FI.isExternal()) {
DEBUG(std::cerr << "\t[BU] In " << F.getName() << " inlining: "
<< FI.getName() << "\n");
More information about the llvm-commits
mailing list