[clang] [CIR] Upstream support for while and do..while loops (PR #133157)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 28 15:12:54 PDT 2025
================
@@ -759,6 +761,84 @@ def BrCondOp : CIR_Op<"brcond",
}];
}
+//===----------------------------------------------------------------------===//
+// While & DoWhileOp
+//===----------------------------------------------------------------------===//
+
+class WhileOpBase<string mnemonic> : CIR_Op<mnemonic, [
+ LoopOpInterface,
+ NoRegionArguments,
+]> {
+ defvar isWhile = !eq(mnemonic, "while");
+ let summary = "C/C++ " # !if(isWhile, "while", "do-while") # " loop";
+ let builders = [
+ OpBuilder<(ins "llvm::function_ref<void(mlir::OpBuilder &, mlir::Location)>":$condBuilder,
----------------
bcardosolopes wrote:
> What do you think? Is that readable?
Works for me!
https://github.com/llvm/llvm-project/pull/133157
More information about the cfe-commits
mailing list