Author: NAKAMURA Takumi Date: 2024-10-03T17:56:19+09:00 New Revision: 1cc3ffab4076ad727a2346b17b34486d848da9f6
URL: https://github.com/llvm/llvm-project/commit/1cc3ffab4076ad727a2346b17b34486d848da9f6 DIFF: https://github.com/llvm/llvm-project/commit/1cc3ffab4076ad727a2346b17b34486d848da9f6.diff LOG: clangCodeGen: Reformat and refactor. NFC. Added: Modified: clang/lib/CodeGen/CGExprAgg.cpp clang/lib/CodeGen/CGStmt.cpp clang/lib/CodeGen/CodeGenFunction.cpp clang/lib/CodeGen/CodeGenPGO.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp index bbfc6672ecc25a..74d4c5ea7bcaa4 100644 --- a/clang/lib/CodeGen/CGExprAgg.cpp +++ b/clang/lib/CodeGen/CGExprAgg.cpp @@ -39,7 +39,7 @@ namespace llvm { extern cl::opt<bool> EnableSingleByteCoverage; } // namespace llvm -namespace { +namespace { class AggExprEmitter : public StmtVisitor<AggExprEmitter> { CodeGenFunction &CGF; CGBuilderTy &Builder; diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 9bf15fca0de489..41dc91c578c800 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -801,10 +801,12 @@ void CodeGenFunction::EmitIndirectGotoStmt(const IndirectGotoStmt &S) { } void CodeGenFunction::EmitIfStmt(const IfStmt &S) { + const Stmt *Else = S.getElse(); + // The else branch of a consteval if statement is always the only branch that // can be runtime evaluated. if (S.isConsteval()) { - const Stmt *Executed = S.isNegatedConsteval() ? S.getThen() : S.getElse(); + const Stmt *Executed = S.isNegatedConsteval() ? S.getThen() : Else; if (Executed) { RunCleanupsScope ExecutedScope(*this); EmitStmt(Executed); @@ -830,8 +832,8 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) { S.isConstexpr())) { // Figure out which block (then or else) is executed. const Stmt *Executed = S.getThen(); - const Stmt *Skipped = S.getElse(); - if (!CondConstant) // Condition false? + const Stmt *Skipped = Else; + if (!CondConstant) // Condition false? std::swap(Executed, Skipped); // If the skipped block has no labels in it, just emit the executed block. @@ -852,7 +854,7 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) { llvm::BasicBlock *ThenBlock = createBasicBlock("if.then"); llvm::BasicBlock *ContBlock = createBasicBlock("if.end"); llvm::BasicBlock *ElseBlock = ContBlock; - if (S.getElse()) + if (Else) ElseBlock = createBasicBlock("if.else"); // Prefer the PGO based weights over the likelihood attribute. @@ -870,7 +872,7 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) { uint64_t ThenCount = getProfileCount(S.getThen()); if (!ThenCount && !getCurrentProfileCount() && CGM.getCodeGenOpts().OptimizationLevel) - LH = Stmt::getLikelihood(S.getThen(), S.getElse()); + LH = Stmt::getLikelihood(S.getThen(), Else); // When measuring MC/DC, always fully evaluate the condition up front using // EvaluateExprAsBool() so that the test vector bitmap can be updated prior to @@ -898,7 +900,7 @@ void CodeGenFunction::EmitIfStmt(const IfStmt &S) { EmitBranch(ContBlock); // Emit the 'else' code if present. - if (const Stmt *Else = S.getElse()) { + if (Else) { { // There is no need to emit line number for an unconditional branch. auto NL = ApplyDebugLocation::CreateEmpty(*this); diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index eda96f3e352ce3..24723e392c2a3a 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -1762,6 +1762,8 @@ void CodeGenFunction::EmitBranchToCounterBlock( if (!InstrumentRegions || !isInstrumentedCondition(Cond)) return EmitBranchOnBoolExpr(Cond, TrueBlock, FalseBlock, TrueCount, LH); + const Stmt *CntrStmt = (CntrIdx ? CntrIdx : Cond); + llvm::BasicBlock *ThenBlock = nullptr; llvm::BasicBlock *ElseBlock = nullptr; llvm::BasicBlock *NextBlock = nullptr; @@ -1814,7 +1816,7 @@ void CodeGenFunction::EmitBranchToCounterBlock( EmitBlock(CounterIncrBlock); // Increment corresponding counter; if index not provided, use Cond as index. - incrementProfileCounter(CntrIdx ? CntrIdx : Cond); + incrementProfileCounter(CntrStmt); // Go to the next block. EmitBranch(NextBlock); diff --git a/clang/lib/CodeGen/CodeGenPGO.cpp b/clang/lib/CodeGen/CodeGenPGO.cpp index b745ad37fc96b1..820bb521ccf850 100644 --- a/clang/lib/CodeGen/CodeGenPGO.cpp +++ b/clang/lib/CodeGen/CodeGenPGO.cpp @@ -1206,14 +1206,12 @@ void CodeGenPGO::emitCounterSetOrIncrement(CGBuilderTy &Builder, const Stmt *S, if (llvm::EnableSingleByteCoverage) Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_cover), ArrayRef(Args, 4)); - else { - if (!StepV) - Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment), - ArrayRef(Args, 4)); - else - Builder.CreateCall( - CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment_step), Args); - } + else if (!StepV) + Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment), + ArrayRef(Args, 4)); + else + Builder.CreateCall( + CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment_step), Args); } bool CodeGenPGO::canEmitMCDCCoverage(const CGBuilderTy &Builder) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits