Add support for bottom up closure of ds analysis


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2963 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/analyze/analyze.cpp b/tools/analyze/analyze.cpp
index 02ee645..f22f734 100644
--- a/tools/analyze/analyze.cpp
+++ b/tools/analyze/analyze.cpp
@@ -57,6 +57,10 @@
 static void printPass(LocalDataStructures &P, ostream &O, Module &M) {
   P.print(O, &M);
 }
+template<>
+static void printPass(BUDataStructures &P, ostream &O, Module &M) {
+  P.print(O, &M);
+}
 
 template<>
 static void printPass(FindUsedTypes &FUT, ostream &O, Module &M) {
@@ -227,7 +231,8 @@
   print, intervals, exprs, instforest, loops, indvars,
 
   // ip analyses
-  printmodule, callgraph, datastructure, printusedtypes, unsafepointertypes,
+  printmodule, callgraph, datastructure, budatastructure,
+  printusedtypes, unsafepointertypes,
 
   domset, idom, domtree, domfrontier,
   postdomset, postidom, postdomtree, postdomfrontier,
@@ -247,6 +252,7 @@
   clEnumVal(printmodule    , "Print entire module"),
   clEnumVal(callgraph      , "Print Call Graph"),
   clEnumVal(datastructure  , "Print data structure information"),
+  clEnumVal(budatastructure, "Print bottom-up data structure information"),
   clEnumVal(printusedtypes , "Print types used by module"),
   clEnumVal(unsafepointertypes, "Print unsafe pointer types"),
 
@@ -279,6 +285,7 @@
   { printusedtypes    , New<Pass, FindUsedTypes>          },
   { callgraph         , New<Pass, CallGraph>              },
   { datastructure     , New<Pass, LocalDataStructures>    },
+  { budatastructure   , New<Pass, BUDataStructures>       },
   { unsafepointertypes, New<Pass, FindUnsafePointerTypes> },
 
   // Dominator analyses