[clang] [CIR] Upstream support for data member comparison (PR #171897)

Henrich Lauko via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 11 14:54:12 PST 2025


================
@@ -108,4 +112,12 @@ mlir::Operation *LowerItaniumCXXABI::lowerGetRuntimeMember(
                              cir::CastKind::bitcast, memberBytesPtr);
 }
 
+mlir::Value
+LowerItaniumCXXABI::lowerDataMemberCmp(cir::CmpOp op, mlir::Value loweredLhs,
+                                       mlir::Value loweredRhs,
+                                       mlir::OpBuilder &builder) const {
+  return cir::CmpOp::create(builder, op.getLoc(), op.getKind(), loweredLhs,
----------------
xlauko wrote:

Is there a reason to create `cir::CmpOp` and not `LLVM::ICmpOp` equivalent? I believe `loweredLhs` and `loweredRhs` are already `LLVM` dialect values, so technically we gen invalid intermediate IR.

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


More information about the cfe-commits mailing list