Skip to content

Commit b0e6c3a

Browse files
committed
[CIR] implemented a lowering function for CIR longjump op
1 parent e2fafec commit b0e6c3a

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4331,6 +4331,14 @@ mlir::LogicalResult CIRToLLVMEhSetjmpOpLowering::matchAndRewrite(
43314331
return mlir::success();
43324332
}
43334333

4334+
mlir::LogicalResult CIRToLLVMEhLongjmpOpLowering::matchAndRewrite(
4335+
cir::EhLongjmpOp op, OpAdaptor adaptor,
4336+
mlir::ConversionPatternRewriter &rewriter) const {
4337+
replaceOpWithCallLLVMIntrinsicOp(rewriter, op, "llvm.eh.sjlj.longjmp", {},
4338+
adaptor.getOperands());
4339+
return mlir::success();
4340+
}
4341+
43344342
mlir::LogicalResult CIRToLLVMCatchParamOpLowering::matchAndRewrite(
43354343
cir::CatchParamOp op, OpAdaptor adaptor,
43364344
mlir::ConversionPatternRewriter &rewriter) const {
@@ -4635,6 +4643,7 @@ void populateCIRToLLVMConversionPatterns(
46354643
CIRToLLVMEhInflightOpLowering,
46364644
CIRToLLVMEhTypeIdOpLowering,
46374645
CIRToLLVMEhSetjmpOpLowering,
4646+
CIRToLLVMEhLongjmpOpLowering,
46384647
CIRToLLVMExpectOpLowering,
46394648
CIRToLLVMExtractMemberOpLowering,
46404649
CIRToLLVMFrameAddrOpLowering,

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,6 +1273,16 @@ class CIRToLLVMEhSetjmpOpLowering
12731273
mlir::ConversionPatternRewriter &) const override;
12741274
};
12751275

1276+
class CIRToLLVMEhLongjmpOpLowering
1277+
: public mlir::OpConversionPattern<cir::EhLongjmpOp> {
1278+
public:
1279+
using mlir::OpConversionPattern<cir::EhLongjmpOp>::OpConversionPattern;
1280+
1281+
mlir::LogicalResult
1282+
matchAndRewrite(cir::EhLongjmpOp op, OpAdaptor,
1283+
mlir::ConversionPatternRewriter &) const override;
1284+
};
1285+
12761286
class CIRToLLVMCatchParamOpLowering
12771287
: public mlir::OpConversionPattern<cir::CatchParamOp> {
12781288
public:

0 commit comments

Comments
 (0)