зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
94b3cdb57f
Коммит
e603df40d4
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче