return new UninitValsVisitor(Diags);
}
+//===----------------------------------------------------------------------===//
+// GRConstProp - Perform intra-procedural, path-sensitive constant propagation.
+
+namespace {
+ class GRConstPropVisitor : public CFGVisitor {
+ public:
+ virtual void Initialize(ASTContext &Context) {}
+
+ virtual void VisitCFG(CFG& C) {
+ // FIXME: Implement.
+ assert (false && "Not yet implemented.");
+ }
+ };
+} // end anonymous namespace
+
+ASTConsumer *clang::CreateGRConstProp() {
+ return new GRConstPropVisitor();
+}
+
//===----------------------------------------------------------------------===//
// LLVM Emitter
ParseCFGDump, // Parse ASTS. Build CFGs. Print CFGs.
ParseCFGView, // Parse ASTS. Build CFGs. View CFGs.
AnalysisLiveVariables, // Print results of live-variable analysis.
+ AnalysisGRConstProp, // Perform graph-reachability constant prop.
WarnDeadStores, // Run DeadStores checker on parsed ASTs.
WarnDeadStoresCheck, // Check diagnostics for "DeadStores".
WarnUninitVals, // Run UnitializedVariables checker.
"Flag warnings of stores to dead variables."),
clEnumValN(WarnUninitVals, "warn-uninit-values",
"Flag warnings of uses of unitialized variables."),
+ clEnumValN(AnalysisGRConstProp, "gr-const-prop",
+ "Perform path-sensitive constant propagation."),
clEnumValN(TestSerialization, "test-pickling",
"Run prototype serializtion code."),
clEnumValN(EmitLLVM, "emit-llvm",
case WarnUninitVals:
return CreateUnitValsChecker(Diag);
+ case AnalysisGRConstProp:
+ return CreateGRConstProp();
+
case TestSerialization:
return CreateSerializationTest(Diag, FileMgr, LangOpts);