Added most of the boilerplate to the driver needed to run the graph-reachability

constant propagation analysis.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45747 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ted Kremenek 2008-01-08 18:04:06 +00:00
Родитель 94b3cdb57f
Коммит e603df40d4
3 изменённых файлов: 27 добавлений и 0 удалений

Просмотреть файл

@ -551,6 +551,25 @@ ASTConsumer *clang::CreateUnitValsChecker(Diagnostic &Diags) {
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

Просмотреть файл

@ -38,6 +38,8 @@ ASTConsumer *CreateLiveVarAnalyzer();
ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
ASTConsumer *CreateGRConstProp();
ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features);

Просмотреть файл

@ -64,6 +64,7 @@ enum ProgActions {
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.
@ -108,6 +109,8 @@ ProgAction(llvm::cl::desc("Choose output type:"), llvm::cl::ZeroOrMore,
"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",
@ -925,6 +928,9 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
case WarnUninitVals:
return CreateUnitValsChecker(Diag);
case AnalysisGRConstProp:
return CreateGRConstProp();
case TestSerialization:
return CreateSerializationTest(Diag, FileMgr, LangOpts);