Add hooks for the FindUsedTypes pass
authorChris Lattner <sabre@nondot.org>
Fri, 9 Nov 2001 05:27:34 +0000 (05:27 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 9 Nov 2001 05:27:34 +0000 (05:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1233 91177308-0d34-0410-b5e6-96231b3b80d8

tools/analyze/analyze.cpp

index 492f47142bf220a6f9b9271f6ffa8293ce521b87..745aa0b0596e5b03ee766978c34bedf636b140d6 100644 (file)
@@ -24,6 +24,7 @@
 #include "llvm/Analysis/Expressions.h"
 #include "llvm/Analysis/CallGraph.h"
 #include "llvm/Analysis/FindUnsafePointerTypes.h"
+#include "llvm/Analysis/FindUsedTypes.h"
 #include <algorithm>
 
 static void PrintMethod(Method *M) {
@@ -75,6 +76,12 @@ static void PrintUnsafePtrTypes(Module *M) {
   FUPT.printResults(M, cout);
 }
 
+static void PrintUsedTypes(Module *M) {
+  FindUsedTypes FUT;
+  FUT.run(M);
+  FUT.printTypes(cout, M);
+}
+
 static void PrintDominatorSets(Method *M) {
   cout << cfg::DominatorSet(M);
 }
@@ -104,7 +111,9 @@ static void PrintPostDomFrontier(Method *M) {
 
 enum Ans {
   PassDone,   // Unique Marker
-  print, intervals, exprclassify, instforest, callgraph, unsafepointertypes,
+  print, intervals, exprclassify, instforest, callgraph,
+  printusedtypes, unsafepointertypes,
+
   domset, idom, domtree, domfrontier,
   postdomset, postidom, postdomtree, postdomfrontier,
 };
@@ -118,6 +127,7 @@ cl::EnumList<enum Ans> AnalysesList(cl::NoFlags,
   clEnumVal(exprclassify   , "Classify Expressions"),
   clEnumVal(instforest     , "Print Instruction Forest"),
   clEnumVal(callgraph      , "Print Call Graph"),
+  clEnumVal(printusedtypes , "Print Types Used by Module"),
   clEnumVal(unsafepointertypes, "Print Unsafe Pointer Types"),
 
   clEnumVal(domset         , "Print Dominator Sets"),
@@ -152,7 +162,8 @@ struct {
 };
 
 pair<enum Ans, void (*)(Module *)> ModAnTable[] = {
-  pair<enum Ans, void (*)(Module *)>(callgraph      , PrintCallGraph),
+  pair<enum Ans, void (*)(Module *)>(callgraph         , PrintCallGraph),
+  pair<enum Ans, void (*)(Module *)>(printusedtypes    , PrintUsedTypes),
   pair<enum Ans, void (*)(Module *)>(unsafepointertypes, PrintUnsafePtrTypes),
 };