@@ -1331,34 +1331,6 @@ class CIRVectorCreateLowering
1331
1331
}
1332
1332
};
1333
1333
1334
- class CIRVectorInsertLowering
1335
- : public mlir::OpConversionPattern<mlir::cir::VecInsertOp> {
1336
- public:
1337
- using OpConversionPattern<mlir::cir::VecInsertOp>::OpConversionPattern;
1338
-
1339
- mlir::LogicalResult
1340
- matchAndRewrite (mlir::cir::VecInsertOp op, OpAdaptor adaptor,
1341
- mlir::ConversionPatternRewriter &rewriter) const override {
1342
- rewriter.replaceOpWithNewOp <mlir::LLVM::InsertElementOp>(
1343
- op, adaptor.getVec (), adaptor.getValue (), adaptor.getIndex ());
1344
- return mlir::success ();
1345
- }
1346
- };
1347
-
1348
- class CIRVectorExtractLowering
1349
- : public mlir::OpConversionPattern<mlir::cir::VecExtractOp> {
1350
- public:
1351
- using OpConversionPattern<mlir::cir::VecExtractOp>::OpConversionPattern;
1352
-
1353
- mlir::LogicalResult
1354
- matchAndRewrite (mlir::cir::VecExtractOp op, OpAdaptor adaptor,
1355
- mlir::ConversionPatternRewriter &rewriter) const override {
1356
- rewriter.replaceOpWithNewOp <mlir::LLVM::ExtractElementOp>(
1357
- op, adaptor.getVec (), adaptor.getIndex ());
1358
- return mlir::success ();
1359
- }
1360
- };
1361
-
1362
1334
class CIRVectorCmpOpLowering
1363
1335
: public mlir::OpConversionPattern<mlir::cir::VecCmpOp> {
1364
1336
public:
@@ -3155,19 +3127,6 @@ class CIRPtrDiffOpLowering
3155
3127
}
3156
3128
};
3157
3129
3158
- class CIRFAbsOpLowering : public mlir ::OpConversionPattern<mlir::cir::FAbsOp> {
3159
- public:
3160
- using OpConversionPattern<mlir::cir::FAbsOp>::OpConversionPattern;
3161
-
3162
- mlir::LogicalResult
3163
- matchAndRewrite (mlir::cir::FAbsOp op, OpAdaptor adaptor,
3164
- mlir::ConversionPatternRewriter &rewriter) const override {
3165
- rewriter.replaceOpWithNewOp <mlir::LLVM::FAbsOp>(
3166
- op, adaptor.getOperands ().front ());
3167
- return mlir::success ();
3168
- }
3169
- };
3170
-
3171
3130
class CIRExpectOpLowering
3172
3131
: public mlir::OpConversionPattern<mlir::cir::ExpectOp> {
3173
3132
public:
@@ -3247,19 +3206,8 @@ class CIRStackSaveLowering
3247
3206
}
3248
3207
};
3249
3208
3250
- class CIRStackRestoreLowering
3251
- : public mlir::OpConversionPattern<mlir::cir::StackRestoreOp> {
3252
- public:
3253
- using OpConversionPattern<mlir::cir::StackRestoreOp>::OpConversionPattern;
3254
-
3255
- mlir::LogicalResult
3256
- matchAndRewrite (mlir::cir::StackRestoreOp op, OpAdaptor adaptor,
3257
- mlir::ConversionPatternRewriter &rewriter) const override {
3258
- rewriter.replaceOpWithNewOp <mlir::LLVM::StackRestoreOp>(op,
3259
- adaptor.getPtr ());
3260
- return mlir::success ();
3261
- }
3262
- };
3209
+ #define GET_BUILTIN_LOWERING_CLASSES
3210
+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
3263
3211
3264
3212
class CIRUnreachableLowering
3265
3213
: public mlir::OpConversionPattern<mlir::cir::UnreachableOp> {
@@ -3602,38 +3550,6 @@ class CIRUnaryFPBuiltinOpLowering : public mlir::OpConversionPattern<CIROp> {
3602
3550
}
3603
3551
};
3604
3552
3605
- using CIRCeilOpLowering =
3606
- CIRUnaryFPBuiltinOpLowering<mlir::cir::CeilOp, mlir::LLVM::FCeilOp>;
3607
- using CIRCosOpLowering =
3608
- CIRUnaryFPBuiltinOpLowering<mlir::cir::CosOp, mlir::LLVM::CosOp>;
3609
- using CIRExpOpLowering =
3610
- CIRUnaryFPBuiltinOpLowering<mlir::cir::ExpOp, mlir::LLVM::ExpOp>;
3611
- using CIRExp2OpLowering =
3612
- CIRUnaryFPBuiltinOpLowering<mlir::cir::Exp2Op, mlir::LLVM::Exp2Op>;
3613
- using CIRFloorOpLowering =
3614
- CIRUnaryFPBuiltinOpLowering<mlir::cir::FloorOp, mlir::LLVM::FFloorOp>;
3615
- using CIRFabsOpLowering =
3616
- CIRUnaryFPBuiltinOpLowering<mlir::cir::FAbsOp, mlir::LLVM::FAbsOp>;
3617
- using CIRLogOpLowering =
3618
- CIRUnaryFPBuiltinOpLowering<mlir::cir::LogOp, mlir::LLVM::LogOp>;
3619
- using CIRLog10OpLowering =
3620
- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log10Op, mlir::LLVM::Log10Op>;
3621
- using CIRLog2OpLowering =
3622
- CIRUnaryFPBuiltinOpLowering<mlir::cir::Log2Op, mlir::LLVM::Log2Op>;
3623
- using CIRNearbyintOpLowering =
3624
- CIRUnaryFPBuiltinOpLowering<mlir::cir::NearbyintOp,
3625
- mlir::LLVM::NearbyintOp>;
3626
- using CIRRintOpLowering =
3627
- CIRUnaryFPBuiltinOpLowering<mlir::cir::RintOp, mlir::LLVM::RintOp>;
3628
- using CIRRoundOpLowering =
3629
- CIRUnaryFPBuiltinOpLowering<mlir::cir::RoundOp, mlir::LLVM::RoundOp>;
3630
- using CIRSinOpLowering =
3631
- CIRUnaryFPBuiltinOpLowering<mlir::cir::SinOp, mlir::LLVM::SinOp>;
3632
- using CIRSqrtOpLowering =
3633
- CIRUnaryFPBuiltinOpLowering<mlir::cir::SqrtOp, mlir::LLVM::SqrtOp>;
3634
- using CIRTruncOpLowering =
3635
- CIRUnaryFPBuiltinOpLowering<mlir::cir::TruncOp, mlir::LLVM::FTruncOp>;
3636
-
3637
3553
using CIRLroundOpLowering =
3638
3554
CIRUnaryFPBuiltinOpLowering<mlir::cir::LroundOp, mlir::LLVM::LroundOp>;
3639
3555
using CIRLLroundOpLowering =
@@ -3907,23 +3823,21 @@ void populateCIRToLLVMConversionPatterns(mlir::RewritePatternSet &patterns,
3907
3823
CIRSwitchFlatOpLowering, CIRPtrDiffOpLowering, CIRCopyOpLowering,
3908
3824
CIRMemCpyOpLowering, CIRFAbsOpLowering, CIRExpectOpLowering,
3909
3825
CIRVTableAddrPointOpLowering, CIRVectorCreateLowering,
3910
- CIRVectorInsertLowering, CIRVectorExtractLowering, CIRVectorCmpOpLowering,
3911
- CIRVectorSplatLowering, CIRVectorTernaryLowering,
3826
+ CIRVectorCmpOpLowering, CIRVectorSplatLowering, CIRVectorTernaryLowering,
3912
3827
CIRVectorShuffleIntsLowering, CIRVectorShuffleVecLowering,
3913
- CIRStackSaveLowering, CIRStackRestoreLowering, CIRUnreachableLowering,
3914
- CIRTrapLowering, CIRInlineAsmOpLowering, CIRSetBitfieldLowering,
3915
- CIRGetBitfieldLowering, CIRPrefetchLowering, CIRObjSizeOpLowering,
3916
- CIRIsConstantOpLowering, CIRCmpThreeWayOpLowering, CIRLroundOpLowering,
3917
- CIRLLroundOpLowering, CIRLrintOpLowering, CIRLLrintOpLowering,
3918
- CIRCeilOpLowering, CIRCosOpLowering, CIRExpOpLowering, CIRExp2OpLowering,
3919
- CIRFloorOpLowering, CIRFAbsOpLowering, CIRLogOpLowering,
3920
- CIRLog10OpLowering, CIRLog2OpLowering, CIRNearbyintOpLowering,
3921
- CIRRintOpLowering, CIRRoundOpLowering, CIRSinOpLowering,
3922
- CIRSqrtOpLowering, CIRTruncOpLowering, CIRCopysignOpLowering,
3828
+ CIRStackSaveLowering, CIRUnreachableLowering, CIRTrapLowering,
3829
+ CIRInlineAsmOpLowering, CIRSetBitfieldLowering, CIRGetBitfieldLowering,
3830
+ CIRPrefetchLowering, CIRObjSizeOpLowering, CIRIsConstantOpLowering,
3831
+ CIRCmpThreeWayOpLowering, CIRLroundOpLowering, CIRLLroundOpLowering,
3832
+ CIRLrintOpLowering, CIRLLrintOpLowering, CIRCopysignOpLowering,
3923
3833
CIRFModOpLowering, CIRFMaxOpLowering, CIRFMinOpLowering, CIRPowOpLowering,
3924
3834
CIRClearCacheOpLowering, CIRUndefOpLowering, CIREhTypeIdOpLowering,
3925
3835
CIRCatchParamOpLowering, CIRResumeOpLowering, CIRAllocExceptionOpLowering,
3926
- CIRThrowOpLowering>(converter, patterns.getContext ());
3836
+ CIRThrowOpLowering
3837
+ #define GET_BUILTIN_LOWERING_LIST
3838
+ #include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
3839
+ #undef GET_BUILTIN_LOWERING_LIST
3840
+ >(converter, patterns.getContext ());
3927
3841
}
3928
3842
3929
3843
namespace {
0 commit comments