@@ -4115,6 +4115,21 @@ class CIRCmpThreeWayOpLowering
4115
4115
}
4116
4116
};
4117
4117
4118
+ class CIRReturnAddrOpLowering
4119
+ : public mlir::OpConversionPattern<mlir::cir::ReturnAddrOp> {
4120
+ public:
4121
+ using OpConversionPattern<mlir::cir::ReturnAddrOp>::OpConversionPattern;
4122
+
4123
+ mlir::LogicalResult
4124
+ matchAndRewrite (mlir::cir::ReturnAddrOp op, OpAdaptor adaptor,
4125
+ mlir::ConversionPatternRewriter &rewriter) const override {
4126
+ auto llvmPtrTy = mlir::LLVM::LLVMPointerType::get (rewriter.getContext ());
4127
+ replaceOpWithCallLLVMIntrinsicOp (rewriter, op, " llvm.returnaddress" ,
4128
+ llvmPtrTy, adaptor.getOperands ());
4129
+ return mlir::success ();
4130
+ }
4131
+ };
4132
+
4118
4133
class CIRClearCacheOpLowering
4119
4134
: public mlir::OpConversionPattern<mlir::cir::ClearCacheOp> {
4120
4135
public:
@@ -4370,9 +4385,16 @@ void populateCIRToLLVMConversionPatterns(
4370
4385
CIRVectorShuffleVecLowering, CIRStackSaveLowering, CIRUnreachableLowering,
4371
4386
CIRTrapLowering, CIRInlineAsmOpLowering, CIRSetBitfieldLowering,
4372
4387
CIRGetBitfieldLowering, CIRPrefetchLowering, CIRObjSizeOpLowering,
4388
+ CIRIsConstantOpLowering, CIRCmpThreeWayOpLowering, CIRMemCpyOpLowering,
4389
+ CIRFAbsOpLowering, CIRExpectOpLowering, CIRVTableAddrPointOpLowering,
4390
+ CIRVectorCreateLowering, CIRVectorCmpOpLowering, CIRVectorSplatLowering,
4391
+ CIRVectorTernaryLowering, CIRVectorShuffleIntsLowering,
4392
+ CIRVectorShuffleVecLowering, CIRStackSaveLowering, CIRUnreachableLowering,
4393
+ CIRTrapLowering, CIRInlineAsmOpLowering, CIRSetBitfieldLowering,
4394
+ CIRGetBitfieldLowering, CIRPrefetchLowering, CIRObjSizeOpLowering,
4373
4395
CIRIsConstantOpLowering, CIRCmpThreeWayOpLowering,
4374
- CIRClearCacheOpLowering, CIREhTypeIdOpLowering, CIRCatchParamOpLowering ,
4375
- CIRResumeOpLowering, CIRAllocExceptionOpLowering,
4396
+ CIRReturnAddrOpLowering, CIRClearCacheOpLowering, CIREhTypeIdOpLowering ,
4397
+ CIRCatchParamOpLowering, CIRResumeOpLowering, CIRAllocExceptionOpLowering,
4376
4398
CIRFreeExceptionOpLowering, CIRThrowOpLowering, CIRIntrinsicCallLowering,
4377
4399
CIRAssumeLowering, CIRAssumeAlignedLowering, CIRAssumeSepStorageLowering,
4378
4400
CIRBaseClassAddrOpLowering, CIRDerivedClassAddrOpLowering,
0 commit comments