[clang] [CIR] Add if statement support (PR #134333)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 4 14:54:26 PDT 2025
================
@@ -442,6 +457,25 @@ class CIRGenFunction : public CIRGenTypeCache {
mlir::LogicalResult emitDeclStmt(const clang::DeclStmt &s);
LValue emitDeclRefLValue(const clang::DeclRefExpr *e);
+ /// Emit an if on a boolean condition to the specified blocks.
+ /// FIXME: Based on the condition, this might try to simplify the codegen of
+ /// the conditional based on the branch. TrueCount should be the number of
----------------
bcardosolopes wrote:
This comment comes from OG, where the interface takes PGO information into account
```
/// EmitBranchOnBoolExpr - Emit a branch on a boolean condition (e.g. for an
/// if statement) to the specified blocks. Based on the condition, this might
/// try to simplify the codegen of the conditional based on the branch.
/// TrueCount should be the number of times we expect the condition to
/// evaluate to true based on PGO data.
void EmitBranchOnBoolExpr(const Expr *Cond, llvm::BasicBlock *TrueBlock,
llvm::BasicBlock *FalseBlock, uint64_t TrueCount,
Stmt::Likelihood LH = Stmt::LH_None,
const Expr *ConditionalOp = nullptr);
```
https://github.com/llvm/llvm-project/pull/134333
More information about the cfe-commits
mailing list