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) {
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,
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"),
{ printusedtypes , New<Pass, FindUsedTypes> },
{ callgraph , New<Pass, CallGraph> },
{ datastructure , New<Pass, LocalDataStructures> },
+ { budatastructure , New<Pass, BUDataStructures> },
{ unsafepointertypes, New<Pass, FindUnsafePointerTypes> },
// Dominator analyses