Skip to content

Commit 31dd4c7

Browse files
committed
[CIR] implemented a lowering function for CIR longjump op
1 parent 537b602 commit 31dd4c7

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
@@ -4329,6 +4329,14 @@ mlir::LogicalResult CIRToLLVMEhSetjmpOpLowering::matchAndRewrite(
43294329
return mlir::success();
43304330
}
43314331

4332+
mlir::LogicalResult CIRToLLVMEhLongjmpOpLowering::matchAndRewrite(
4333+
cir::EhLongjmpOp op, OpAdaptor adaptor,
4334+
mlir::ConversionPatternRewriter &rewriter) const {
4335+
replaceOpWithCallLLVMIntrinsicOp(rewriter, op, "llvm.eh.sjlj.longjmp", {},
4336+
adaptor.getOperands());
4337+
return mlir::success();
4338+
}
4339+
43324340
mlir::LogicalResult CIRToLLVMCatchParamOpLowering::matchAndRewrite(
43334341
cir::CatchParamOp op, OpAdaptor adaptor,
43344342
mlir::ConversionPatternRewriter &rewriter) const {
@@ -4631,6 +4639,7 @@ void populateCIRToLLVMConversionPatterns(
46314639
CIRToLLVMEhInflightOpLowering,
46324640
CIRToLLVMEhTypeIdOpLowering,
46334641
CIRToLLVMEhSetjmpOpLowering,
4642+
CIRToLLVMEhLongjmpOpLowering,
46344643
CIRToLLVMExpectOpLowering,
46354644
CIRToLLVMExtractMemberOpLowering,
46364645
CIRToLLVMFrameAddrOpLowering,

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,6 +1278,16 @@ class CIRToLLVMEhSetjmpOpLowering
12781278
mlir::ConversionPatternRewriter &) const override;
12791279
};
12801280

1281+
class CIRToLLVMEhLongjmpOpLowering
1282+
: public mlir::OpConversionPattern<cir::EhLongjmpOp> {
1283+
public:
1284+
using mlir::OpConversionPattern<cir::EhLongjmpOp>::OpConversionPattern;
1285+
1286+
mlir::LogicalResult
1287+
matchAndRewrite(cir::EhLongjmpOp op, OpAdaptor,
1288+
mlir::ConversionPatternRewriter &) const override;
1289+
};
1290+
12811291
class CIRToLLVMCatchParamOpLowering
12821292
: public mlir::OpConversionPattern<cir::CatchParamOp> {
12831293
public:

0 commit comments

Comments
 (0)