Skip to content

Commit a6614bf

Browse files
committed
implemented a lowering function for CIR longjump op
1 parent d4da5b3 commit a6614bf

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-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: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,6 +1278,17 @@ 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+
1291+
12811292
class CIRToLLVMCatchParamOpLowering
12821293
: public mlir::OpConversionPattern<cir::CatchParamOp> {
12831294
public:

0 commit comments

Comments
 (0)