[clang] [CIR] Upstream new SetBitfieldOp for handling C and C++ struct bitfields (PR #147609)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 9 07:55:17 PDT 2025
================
@@ -2384,6 +2385,82 @@ mlir::LogicalResult CIRToLLVMComplexImagOpLowering::matchAndRewrite(
return mlir::success();
}
+mlir::LogicalResult CIRToLLVMSetBitfieldOpLowering::matchAndRewrite(
+ cir::SetBitfieldOp op, OpAdaptor adaptor,
+ mlir::ConversionPatternRewriter &rewriter) const {
+ mlir::OpBuilder::InsertionGuard guard(rewriter);
+ rewriter.setInsertionPoint(op);
+
+ cir::BitfieldInfoAttr info = op.getBitfieldInfo();
+ uint64_t size = info.getSize();
+ uint64_t offset = info.getOffset();
+ mlir::Type storageType = info.getStorageType();
+ mlir::MLIRContext *context = storageType.getContext();
+
+ unsigned storageSize = 0;
+
+ mlir::IntegerType intType =
----------------
bcardosolopes wrote:
This pattern happened in a recent PR, is it worth having a shared helper for getting this integer type?
https://github.com/llvm/llvm-project/pull/147609
More information about the cfe-commits
mailing list