Changes in directory llvm/include/llvm/Analysis/DataStructure:

DataStructure.h updated: 1.95 -> 1.96
---
Log message:

Do partial inlining in BU.  This resolves more call sites.  Also add options to 
merge in globals during recursion and to back annotate DSNodes when function 
pointers are resolved.  This makes PA work for a whole lot more things 
(unresolved call sites being what has been killing various DSA based passes)

---
Diffs of the changes:  (+10 -1)

 DataStructure.h |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/Analysis/DataStructure/DataStructure.h
diff -u llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.95 
llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.96
--- llvm/include/llvm/Analysis/DataStructure/DataStructure.h:1.95       Sun Oct 
23 19:38:25 2005
+++ llvm/include/llvm/Analysis/DataStructure/DataStructure.h    Mon Jun 19 
13:23:36 2006
@@ -116,6 +116,9 @@
   /// GlobalECs - The equivalence classes for each global value that is merged
   /// with other global values in the DSGraphs.
   EquivalenceClasses<GlobalValue*> GlobalECs;
+
+  std::map<CallSite, std::vector<Function*> > AlreadyInlined;
+
 public:
   ~BUDataStructures() { releaseMyMemory(); }
 
@@ -135,6 +138,12 @@
     return const_cast<BUDataStructures*>(this)->
                    CreateGraphForExternalFunction(F);
   }
+  
+  /// DSGraphExists - Is the DSGraph computed for this function?
+  ///
+  bool doneDSGraph(const Function *F) const {
+    return (DSInfo.find(const_cast<Function*>(F)) != DSInfo.end());
+  }
 
   DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
 
@@ -176,7 +185,7 @@
   }
 
 private:
-  void calculateGraph(DSGraph &G);
+  bool calculateGraph(DSGraph &G);
 
   DSGraph &getOrCreateGraph(Function *F);
 



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to