summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-02-29 22:32:24 +0000
committerTed Kremenek <kremenek@apple.com>2008-02-29 22:32:24 +0000
commitfcf6863f09167a40ab74397ca861ba355ad7cec3 (patch)
tree536e01dc81679ba7818616ef4838bdd5a72a7e74
parent0e8b146152b1eaab54098ac9ace4af57449cd6a7 (diff)
downloadbcm5719-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.cpp15
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;
}
OpenPOWER on IntegriCloud