Skip to content

Commit 9a395ad

Browse files
committed
[CIR] updated longjmp assembly format
1 parent a352f35 commit 9a395ad

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

clang/include/clang/CIR/Dialect/IR/CIROps.td

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4776,13 +4776,14 @@ def CIR_EhLongjmpOp : CIR_Op<"eh.longjmp"> {
47764776

47774777
Examples:
47784778
```mlir
4779-
cir.eh.longjmp %arg0 : (!cir.ptr<!cir.void>) -> ()
4779+
cir.eh.longjmp %arg0 : !cir.ptr<!cir.void>
47804780
```
47814781
}];
4782+
47824783
let arguments = (ins CIR_PointerType:$env);
47834784

47844785
let assemblyFormat = [{
4785-
$env `:` functional-type($env, results) attr-dict
4786+
$env `:` qualified(type($env)) attr-dict
47864787
}];
47874788
}
47884789

clang/test/CIR/CodeGen/builtin-setjmp-longjmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ void test_longjmp(void *env) {
6969
// CIR-NEXT: cir.store [[ENV]], [[ENV_ALLOCA]] : !cir.ptr<!void>, !cir.ptr<!cir.ptr<!void>>
7070
// CIR-NEXT: [[ENV_LOAD:%[0-9]+]] = cir.load align(8) [[ENV_ALLOCA]]
7171
// CIR-NEXT: [[CAST:%[0-9]+]] = cir.cast(bitcast, [[ENV_LOAD]] : !cir.ptr<!void>), !cir.ptr<!cir.ptr<!void>>
72-
// CIR-NEXT: cir.eh.longjmp [[CAST]] : (!cir.ptr<!cir.ptr<!void>>) -> ()
72+
// CIR-NEXT: cir.eh.longjmp [[CAST]] : !cir.ptr<!cir.ptr<!void>>
7373
// CIR-NEXT: cir.unreachable
7474

7575

clang/test/CIR/Lowering/setjmp-longjmp.cir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module {
2929
// MLIR-NEXT: llvm.call_intrinsic "llvm.eh.sjlj.longjmp"([[ARG0]]) : (!llvm.ptr) -> ()
3030
// MLIR-NEXT: llvm.unreachable
3131
// MLIR-NEXT: }
32-
cir.eh.longjmp %arg0 : (!p32) -> ()
32+
cir.eh.longjmp %arg0 : !p32
3333
cir.unreachable
3434
}
3535
// MLIR: }

clang/test/CIR/Transforms/setjmp-longjmp-lower.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void test_longjmp(void *env) {
5959
// BEFORE-LOWERING-PREPARE-NEXT: cir.store [[ENV]], [[ENV_ALLOCA]]
6060
// BEFORE-LOWERING-PREPARE-NEXT: [[ENV_LOAD:%.*]] = cir.load align(8) [[ENV_ALLOCA]]
6161
// BEFORE-LOWERING-PREPARE-NEXT: [[CAST:%.*]] = cir.cast(bitcast, [[ENV_LOAD]]
62-
// BEFORE-LOWERING-PREPARE-NEXT: cir.eh.longjmp [[CAST]] : (!cir.ptr<!cir.ptr<!void>>) -> ()
62+
// BEFORE-LOWERING-PREPARE-NEXT: cir.eh.longjmp [[CAST]] : !cir.ptr<!cir.ptr<!void>>
6363
// BEFORE-LOWERING-PREPARE-NEXT: cir.unreachable
6464

6565
// AFTER-LOWERING-PREPARE-LABEL: test_longjmp
@@ -68,7 +68,7 @@ void test_longjmp(void *env) {
6868
// AFTER-LOWERING-PREPARE-NEXT: cir.store [[ENV]], [[ENV_ALLOCA]]
6969
// AFTER-LOWERING-PREPARE-NEXT: [[ENV_LOAD:%.*]] = cir.load align(8) [[ENV_ALLOCA]]
7070
// AFTER-LOWERING-PREPARE-NEXT: [[CAST:%.*]] = cir.cast(bitcast, [[ENV_LOAD]]
71-
// AFTER-LOWERING-PREPARE-NEXT: cir.eh.longjmp [[CAST]] : (!cir.ptr<!cir.ptr<!void>>)
71+
// AFTER-LOWERING-PREPARE-NEXT: cir.eh.longjmp [[CAST]] : !cir.ptr<!cir.ptr<!void>>
7272
// AFTER-LOWERING-PREPARE-NEXT: cir.unreachable
7373
__builtin_longjmp(env, 1);
7474
}

0 commit comments

Comments
 (0)