diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-02-29 22:32:24 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-02-29 22:32:24 +0000 |
commit | fcf6863f09167a40ab74397ca861ba355ad7cec3 (patch) | |
tree | 536e01dc81679ba7818616ef4838bdd5a72a7e74 | |
parent | 0e8b146152b1eaab54098ac9ace4af57449cd6a7 (diff) | |
download | bcm5719-llvm-fcf6863f09167a40ab74397ca861ba355ad7cec3.tar.gz bcm5719-llvm-fcf6863f09167a40ab74397ca861ba355ad7cec3.zip |
Minor CFG optimization: don't create separate block-level expressions for DeclStmt initializers when the initializer is a literal.
llvm-svn: 47771
-rw-r--r-- | clang/AST/CFG.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/AST/CFG.cpp b/clang/AST/CFG.cpp index ed9b320023d..0cab1f1b5c7 100644 --- a/clang/AST/CFG.cpp +++ b/clang/AST/CFG.cpp @@ -402,8 +402,21 @@ CFGBlock* CFGBuilder::WalkAST_VisitDeclSubExprs(StmtIterator& I) { Stmt* S = *I; ++I; WalkAST_VisitDeclSubExprs(I); + + // Optimization: Don't create separate block-level statements for literals. + + switch (S->getStmtClass()) { + case Stmt::IntegerLiteralClass: + case Stmt::CharacterLiteralClass: + case Stmt::StringLiteralClass: + break; + + // All other cases. + + default: + Block = addStmt(S); + } - Block = addStmt(S); return Block; } |