@@ -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:
@@ -3156,19 +3128,6 @@ class CIRPtrDiffOpLowering
31563128 }
31573129};
31583130
3159- class CIRFAbsOpLowering : public mlir ::OpConversionPattern<mlir::cir::FAbsOp> {
3160- public:
3161- using OpConversionPattern<mlir::cir::FAbsOp>::OpConversionPattern;
3162-
3163- mlir::LogicalResult
3164- matchAndRewrite (mlir::cir::FAbsOp op, OpAdaptor adaptor,
3165- mlir::ConversionPatternRewriter &rewriter) const override {
3166- rewriter.replaceOpWithNewOp <mlir::LLVM::FAbsOp>(
3167- op, adaptor.getOperands ().front ());
3168- return mlir::success ();
3169- }
3170- };
3171-
31723131class CIRExpectOpLowering
31733132 : public mlir::OpConversionPattern<mlir::cir::ExpectOp> {
31743133public:
@@ -3248,19 +3207,8 @@ class CIRStackSaveLowering
32483207 }
32493208};
32503209
3251- class CIRStackRestoreLowering
3252- : public mlir::OpConversionPattern<mlir::cir::StackRestoreOp> {
3253- public:
3254- using OpConversionPattern<mlir::cir::StackRestoreOp>::OpConversionPattern;
3255-
3256- mlir::LogicalResult
3257- matchAndRewrite (mlir::cir::StackRestoreOp op, OpAdaptor adaptor,
3258- mlir::ConversionPatternRewriter &rewriter) const override {
3259- rewriter.replaceOpWithNewOp <mlir::LLVM::StackRestoreOp>(op,
3260- adaptor.getPtr ());
3261- return mlir::success ();
3262- }
3263- };
3210+ #define GET_BUILTIN_LOWERING_CLASSES
3211+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
32643212
32653213class CIRUnreachableLowering
32663214 : public mlir::OpConversionPattern<mlir::cir::UnreachableOp> {
@@ -3603,38 +3551,6 @@ class CIRUnaryFPBuiltinOpLowering : public mlir::OpConversionPattern<CIROp> {
36033551 }
36043552};
36053553
3606- using CIRCeilOpLowering =
3607- CIRUnaryFPBuiltinOpLowering<mlir::cir::CeilOp, mlir::LLVM::FCeilOp>;
3608- using CIRCosOpLowering =
3609- CIRUnaryFPBuiltinOpLowering<mlir::cir::CosOp, mlir::LLVM::CosOp>;
3610- using CIRExpOpLowering =
3611- CIRUnaryFPBuiltinOpLowering<mlir::cir::ExpOp, mlir::LLVM::ExpOp>;
3612- using CIRExp2OpLowering =
3613- CIRUnaryFPBuiltinOpLowering<mlir::cir::Exp2Op, mlir::LLVM::Exp2Op>;
3614- using CIRFloorOpLowering =
3615- CIRUnaryFPBuiltinOpLowering<mlir::cir::FloorOp, mlir::LLVM::FFloorOp>;
3616- using CIRFabsOpLowering =
3617- CIRUnaryFPBuiltinOpLowering<mlir::cir::FAbsOp, mlir::LLVM::FAbsOp>;
3618- using CIRLogOpLowering =
3619- CIRUnaryFPBuiltinOpLowering<mlir::cir::LogOp, mlir::LLVM::LogOp>;
3620- using CIRLog10OpLowering =
3621- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log10Op, mlir::LLVM::Log10Op>;
3622- using CIRLog2OpLowering =
3623- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log2Op, mlir::LLVM::Log2Op>;
3624- using CIRNearbyintOpLowering =
3625- CIRUnaryFPBuiltinOpLowering<mlir::cir::NearbyintOp,
3626- mlir::LLVM::NearbyintOp>;
3627- using CIRRintOpLowering =
3628- CIRUnaryFPBuiltinOpLowering<mlir::cir::RintOp, mlir::LLVM::RintOp>;
3629- using CIRRoundOpLowering =
3630- CIRUnaryFPBuiltinOpLowering<mlir::cir::RoundOp, mlir::LLVM::RoundOp>;
3631- using CIRSinOpLowering =
3632- CIRUnaryFPBuiltinOpLowering<mlir::cir::SinOp, mlir::LLVM::SinOp>;
3633- using CIRSqrtOpLowering =
3634- CIRUnaryFPBuiltinOpLowering<mlir::cir::SqrtOp, mlir::LLVM::SqrtOp>;
3635- using CIRTruncOpLowering =
3636- CIRUnaryFPBuiltinOpLowering<mlir::cir::TruncOp, mlir::LLVM::FTruncOp>;
3637-
36383554using CIRLroundOpLowering =
36393555 CIRUnaryFPBuiltinOpLowering<mlir::cir::LroundOp, mlir::LLVM::LroundOp>;
36403556using CIRLLroundOpLowering =
@@ -3909,23 +3825,21 @@ void populateCIRToLLVMConversionPatterns(mlir::RewritePatternSet &patterns,
39093825 CIRSwitchFlatOpLowering, CIRPtrDiffOpLowering, CIRCopyOpLowering,
39103826 CIRMemCpyOpLowering, CIRFAbsOpLowering, CIRExpectOpLowering,
39113827 CIRVTableAddrPointOpLowering, CIRVectorCreateLowering,
3912- CIRVectorInsertLowering, CIRVectorExtractLowering, CIRVectorCmpOpLowering,
3913- CIRVectorSplatLowering, CIRVectorTernaryLowering,
3828+ CIRVectorCmpOpLowering, CIRVectorSplatLowering, CIRVectorTernaryLowering,
39143829 CIRVectorShuffleIntsLowering, CIRVectorShuffleVecLowering,
3915- CIRStackSaveLowering, CIRStackRestoreLowering, CIRUnreachableLowering,
3916- CIRTrapLowering, CIRInlineAsmOpLowering, CIRSetBitfieldLowering,
3917- CIRGetBitfieldLowering, CIRPrefetchLowering, CIRObjSizeOpLowering,
3918- CIRIsConstantOpLowering, CIRCmpThreeWayOpLowering, CIRLroundOpLowering,
3919- CIRLLroundOpLowering, CIRLrintOpLowering, CIRLLrintOpLowering,
3920- CIRCeilOpLowering, CIRCosOpLowering, CIRExpOpLowering, CIRExp2OpLowering,
3921- CIRFloorOpLowering, CIRFAbsOpLowering, CIRLogOpLowering,
3922- CIRLog10OpLowering, CIRLog2OpLowering, CIRNearbyintOpLowering,
3923- CIRRintOpLowering, CIRRoundOpLowering, CIRSinOpLowering,
3924- CIRSqrtOpLowering, CIRTruncOpLowering, CIRCopysignOpLowering,
3830+ CIRStackSaveLowering, CIRUnreachableLowering, CIRTrapLowering,
3831+ CIRInlineAsmOpLowering, CIRSetBitfieldLowering, CIRGetBitfieldLowering,
3832+ CIRPrefetchLowering, CIRObjSizeOpLowering, CIRIsConstantOpLowering,
3833+ CIRCmpThreeWayOpLowering, CIRLroundOpLowering, CIRLLroundOpLowering,
3834+ CIRLrintOpLowering, CIRLLrintOpLowering, CIRCopysignOpLowering,
39253835 CIRFModOpLowering, CIRFMaxOpLowering, CIRFMinOpLowering, CIRPowOpLowering,
39263836 CIRClearCacheOpLowering, CIRUndefOpLowering, CIREhTypeIdOpLowering,
39273837 CIRCatchParamOpLowering, CIRResumeOpLowering, CIRAllocExceptionOpLowering,
3928- CIRThrowOpLowering>(converter, patterns.getContext ());
3838+ CIRThrowOpLowering
3839+ #define GET_BUILTIN_LOWERING_LIST
3840+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
3841+ #undef GET_BUILTIN_LOWERING_LIST
3842+ >(converter, patterns.getContext ());
39293843}
39303844
39313845namespace {
0 commit comments