From ae2a98cd35a67ce5e5d1eeec94c0ce7851b6b72c Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Fri, 29 Feb 2008 22:32:24 +0000 Subject: [PATCH] Minor CFG optimization: don't create separate block-level expressions for DeclStmt initializers when the initializer is a literal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47771 91177308-0d34-0410-b5e6-96231b3b80d8 --- AST/CFG.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/AST/CFG.cpp b/AST/CFG.cpp index ed9b320023..0cab1f1b5c 100644 --- a/AST/CFG.cpp +++ b/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; } -- 2.40.0