[clang] [CIR] Add TargetLowering pass (PR #179245)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 3 10:48:23 PST 2026


================
@@ -83,15 +83,25 @@ def GotoSolver : Pass<"cir-goto-solver"> {
 }
 
 def CXXABILowering : Pass<"cir-cxxabi-lowering", "mlir::ModuleOp"> {
-  let summary = "Lower abstract C++ operations to target-specific ABI form";
+  let summary = "Lower CIR according to ABI requirements";
   let description = [{
-    This pass lowers high-level operations that represent C++ constructs in a
-    target-independent way to concrete, target specific operations.
+    This pass lowers CIR operations and types that represent high-level C/C++
+    constructs to a more "fundamental" form according to the target ABI
+    requirements.
   }];
   let constructor = "mlir::createCXXABILoweringPass()";
   let dependentDialects = ["cir::CIRDialect"];
 }
 
+def TargetLowering : Pass<"cir-target-lowering", "mlir::ModuleOp"> {
+  let summary = "Lower CIR to a target-specific form";
+  let description = [{
+    This pass lowers CIR operations from a target-agnostic form to a
----------------
andykaylor wrote:

It would be helpful to have a more verbose description that would, for example, help one understand the difference between this, the CXXABI lowering pass, and the forthcoming calling convention lowering pass.

https://github.com/llvm/llvm-project/pull/179245


More information about the cfe-commits mailing list