@@ -1330,34 +1330,6 @@ class CIRVectorCreateLowering
13301330 }
13311331};
13321332
1333- class CIRVectorInsertLowering
1334- : public mlir::OpConversionPattern<mlir::cir::VecInsertOp> {
1335- public:
1336- using OpConversionPattern<mlir::cir::VecInsertOp>::OpConversionPattern;
1337-
1338- mlir::LogicalResult
1339- matchAndRewrite (mlir::cir::VecInsertOp op, OpAdaptor adaptor,
1340- mlir::ConversionPatternRewriter &rewriter) const override {
1341- rewriter.replaceOpWithNewOp <mlir::LLVM::InsertElementOp>(
1342- op, adaptor.getVec (), adaptor.getValue (), adaptor.getIndex ());
1343- return mlir::success ();
1344- }
1345- };
1346-
1347- class CIRVectorExtractLowering
1348- : public mlir::OpConversionPattern<mlir::cir::VecExtractOp> {
1349- public:
1350- using OpConversionPattern<mlir::cir::VecExtractOp>::OpConversionPattern;
1351-
1352- mlir::LogicalResult
1353- matchAndRewrite (mlir::cir::VecExtractOp op, OpAdaptor adaptor,
1354- mlir::ConversionPatternRewriter &rewriter) const override {
1355- rewriter.replaceOpWithNewOp <mlir::LLVM::ExtractElementOp>(
1356- op, adaptor.getVec (), adaptor.getIndex ());
1357- return mlir::success ();
1358- }
1359- };
1360-
13611333class CIRVectorCmpOpLowering
13621334 : public mlir::OpConversionPattern<mlir::cir::VecCmpOp> {
13631335public:
@@ -3154,19 +3126,6 @@ class CIRPtrDiffOpLowering
31543126 }
31553127};
31563128
3157- class CIRFAbsOpLowering : public mlir ::OpConversionPattern<mlir::cir::FAbsOp> {
3158- public:
3159- using OpConversionPattern<mlir::cir::FAbsOp>::OpConversionPattern;
3160-
3161- mlir::LogicalResult
3162- matchAndRewrite (mlir::cir::FAbsOp op, OpAdaptor adaptor,
3163- mlir::ConversionPatternRewriter &rewriter) const override {
3164- rewriter.replaceOpWithNewOp <mlir::LLVM::FAbsOp>(
3165- op, adaptor.getOperands ().front ());
3166- return mlir::success ();
3167- }
3168- };
3169-
31703129class CIRExpectOpLowering
31713130 : public mlir::OpConversionPattern<mlir::cir::ExpectOp> {
31723131public:
@@ -3246,19 +3205,8 @@ class CIRStackSaveLowering
32463205 }
32473206};
32483207
3249- class CIRStackRestoreLowering
3250- : public mlir::OpConversionPattern<mlir::cir::StackRestoreOp> {
3251- public:
3252- using OpConversionPattern<mlir::cir::StackRestoreOp>::OpConversionPattern;
3253-
3254- mlir::LogicalResult
3255- matchAndRewrite (mlir::cir::StackRestoreOp op, OpAdaptor adaptor,
3256- mlir::ConversionPatternRewriter &rewriter) const override {
3257- rewriter.replaceOpWithNewOp <mlir::LLVM::StackRestoreOp>(op,
3258- adaptor.getPtr ());
3259- return mlir::success ();
3260- }
3261- };
3208+ #define GET_BUILTIN_LOWERING_CLASSES
3209+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
32623210
32633211class CIRUnreachableLowering
32643212 : public mlir::OpConversionPattern<mlir::cir::UnreachableOp> {
@@ -3601,38 +3549,6 @@ class CIRUnaryFPBuiltinOpLowering : public mlir::OpConversionPattern<CIROp> {
36013549 }
36023550};
36033551
3604- using CIRCeilOpLowering =
3605- CIRUnaryFPBuiltinOpLowering<mlir::cir::CeilOp, mlir::LLVM::FCeilOp>;
3606- using CIRCosOpLowering =
3607- CIRUnaryFPBuiltinOpLowering<mlir::cir::CosOp, mlir::LLVM::CosOp>;
3608- using CIRExpOpLowering =
3609- CIRUnaryFPBuiltinOpLowering<mlir::cir::ExpOp, mlir::LLVM::ExpOp>;
3610- using CIRExp2OpLowering =
3611- CIRUnaryFPBuiltinOpLowering<mlir::cir::Exp2Op, mlir::LLVM::Exp2Op>;
3612- using CIRFloorOpLowering =
3613- CIRUnaryFPBuiltinOpLowering<mlir::cir::FloorOp, mlir::LLVM::FFloorOp>;
3614- using CIRFabsOpLowering =
3615- CIRUnaryFPBuiltinOpLowering<mlir::cir::FAbsOp, mlir::LLVM::FAbsOp>;
3616- using CIRLogOpLowering =
3617- CIRUnaryFPBuiltinOpLowering<mlir::cir::LogOp, mlir::LLVM::LogOp>;
3618- using CIRLog10OpLowering =
3619- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log10Op, mlir::LLVM::Log10Op>;
3620- using CIRLog2OpLowering =
3621- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log2Op, mlir::LLVM::Log2Op>;
3622- using CIRNearbyintOpLowering =
3623- CIRUnaryFPBuiltinOpLowering<mlir::cir::NearbyintOp,
3624- mlir::LLVM::NearbyintOp>;
3625- using CIRRintOpLowering =
3626- CIRUnaryFPBuiltinOpLowering<mlir::cir::RintOp, mlir::LLVM::RintOp>;
3627- using CIRRoundOpLowering =
3628- CIRUnaryFPBuiltinOpLowering<mlir::cir::RoundOp, mlir::LLVM::RoundOp>;
3629- using CIRSinOpLowering =
3630- CIRUnaryFPBuiltinOpLowering<mlir::cir::SinOp, mlir::LLVM::SinOp>;
3631- using CIRSqrtOpLowering =
3632- CIRUnaryFPBuiltinOpLowering<mlir::cir::SqrtOp, mlir::LLVM::SqrtOp>;
3633- using CIRTruncOpLowering =
3634- CIRUnaryFPBuiltinOpLowering<mlir::cir::TruncOp, mlir::LLVM::FTruncOp>;
3635-
36363552using CIRLroundOpLowering =
36373553 CIRUnaryFPBuiltinOpLowering<mlir::cir::LroundOp, mlir::LLVM::LroundOp>;
36383554using CIRLLroundOpLowering =
@@ -3906,23 +3822,21 @@ void populateCIRToLLVMConversionPatterns(mlir::RewritePatternSet &patterns,
39063822 CIRSwitchFlatOpLowering, CIRPtrDiffOpLowering, CIRCopyOpLowering,
39073823 CIRMemCpyOpLowering, CIRFAbsOpLowering, CIRExpectOpLowering,
39083824 CIRVTableAddrPointOpLowering, CIRVectorCreateLowering,
3909- CIRVectorInsertLowering, CIRVectorExtractLowering, CIRVectorCmpOpLowering,
3910- CIRVectorSplatLowering, CIRVectorTernaryLowering,
3825+ CIRVectorCmpOpLowering, CIRVectorSplatLowering, CIRVectorTernaryLowering,
39113826 CIRVectorShuffleIntsLowering, CIRVectorShuffleVecLowering,
3912- CIRStackSaveLowering, CIRStackRestoreLowering, CIRUnreachableLowering,
3913- CIRTrapLowering, CIRInlineAsmOpLowering, CIRSetBitfieldLowering,
3914- CIRGetBitfieldLowering, CIRPrefetchLowering, CIRObjSizeOpLowering,
3915- CIRIsConstantOpLowering, CIRCmpThreeWayOpLowering, CIRLroundOpLowering,
3916- CIRLLroundOpLowering, CIRLrintOpLowering, CIRLLrintOpLowering,
3917- CIRCeilOpLowering, CIRCosOpLowering, CIRExpOpLowering, CIRExp2OpLowering,
3918- CIRFloorOpLowering, CIRFAbsOpLowering, CIRLogOpLowering,
3919- CIRLog10OpLowering, CIRLog2OpLowering, CIRNearbyintOpLowering,
3920- CIRRintOpLowering, CIRRoundOpLowering, CIRSinOpLowering,
3921- CIRSqrtOpLowering, CIRTruncOpLowering, CIRCopysignOpLowering,
3827+ CIRStackSaveLowering, CIRUnreachableLowering, CIRTrapLowering,
3828+ CIRInlineAsmOpLowering, CIRSetBitfieldLowering, CIRGetBitfieldLowering,
3829+ CIRPrefetchLowering, CIRObjSizeOpLowering, CIRIsConstantOpLowering,
3830+ CIRCmpThreeWayOpLowering, CIRLroundOpLowering, CIRLLroundOpLowering,
3831+ CIRLrintOpLowering, CIRLLrintOpLowering, CIRCopysignOpLowering,
39223832 CIRFModOpLowering, CIRFMaxOpLowering, CIRFMinOpLowering, CIRPowOpLowering,
39233833 CIRClearCacheOpLowering, CIRUndefOpLowering, CIREhTypeIdOpLowering,
39243834 CIRCatchParamOpLowering, CIRResumeOpLowering, CIRAllocExceptionOpLowering,
3925- CIRThrowOpLowering>(converter, patterns.getContext ());
3835+ CIRThrowOpLowering
3836+ #define GET_BUILTIN_LOWERING_LIST
3837+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
3838+ #undef GET_BUILTIN_LOWERING_LIST
3839+ >(converter, patterns.getContext ());
39263840}
39273841
39283842namespace {
0 commit comments