CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
84 lines
3.6 KiB
Plaintext
84 lines
3.6 KiB
Plaintext
// RUN: cir-opt %s -cir-to-llvm -o %t.cir
|
|
|
|
!s32i = !cir.int<s, 32>
|
|
!u8i = !cir.int<u, 8>
|
|
|
|
module {
|
|
|
|
cir.func private @__gxx_personality_v0(...) -> !s32i
|
|
|
|
// CHECK: llvm.func @__gxx_personality_v0(...) -> i32
|
|
|
|
cir.func @inflight_exception() personality(@__gxx_personality_v0) {
|
|
%exception_ptr, %type_id = cir.eh.inflight_exception
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: llvm.func @inflight_exception() attributes {personality = @__gxx_personality_v0} {
|
|
// CHECK: %[[CONST_0:.*]] = llvm.mlir.zero : !llvm.ptr
|
|
// CHECK: %[[LP:.*]] = llvm.landingpad (catch %[[CONST_0]] : !llvm.ptr) : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[EXCEPTION_PTR:.*]] = llvm.extractvalue %[[LP]][0] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[TYPE_ID:.*]] = llvm.extractvalue %[[LP]][1] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: llvm.return
|
|
// CHECK: }
|
|
|
|
cir.func @inflight_exception_with_cleanup() personality(@__gxx_personality_v0) {
|
|
%exception_ptr, %type_id = cir.eh.inflight_exception cleanup
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: llvm.func @inflight_exception_with_cleanup() attributes {personality = @__gxx_personality_v0} {
|
|
// CHECK: %[[LP:.*]] = llvm.landingpad cleanup : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[EXCEPTION_PTR:.*]] = llvm.extractvalue %[[LP]][0] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[TYPE_ID:.*]] = llvm.extractvalue %[[LP]][1] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: llvm.return
|
|
// CHECK: }
|
|
|
|
|
|
cir.global "private" constant external @_ZTIi : !cir.ptr<!u8i>
|
|
cir.global "private" constant external @_ZTIPKc : !cir.ptr<!u8i>
|
|
|
|
cir.func @inflight_exception_with_catch_type_list() personality(@__gxx_personality_v0) {
|
|
%exception_ptr, %type_id = cir.eh.inflight_exception [@_ZTIi, @_ZTIPKc]
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: llvm.func @inflight_exception_with_catch_type_list() attributes {personality = @__gxx_personality_v0} {
|
|
// CHECK: %[[TI_1_ADDR:.*]] = llvm.mlir.addressof @_ZTIPKc : !llvm.ptr
|
|
// CHECK: %[[TI_2_ADDR:.*]] = llvm.mlir.addressof @_ZTIi : !llvm.ptr
|
|
// CHECK: %[[LP:.*]] = llvm.landingpad (catch %[[TI_2_ADDR]] : !llvm.ptr) (catch %[[TI_1_ADDR]] : !llvm.ptr) : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[EXCEPTION_PTR:.*]] = llvm.extractvalue %[[LP]][0] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[TYPE_ID:.*]] = llvm.extractvalue %[[LP]][1] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: llvm.return
|
|
// CHECK: }
|
|
|
|
cir.func @inflight_exception_catch_all_with_type_list() personality(@__gxx_personality_v0) {
|
|
%exception_ptr, %type_id = cir.eh.inflight_exception catch_all [@_ZTIi]
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: llvm.func @inflight_exception_catch_all_with_type_list() attributes {personality = @__gxx_personality_v0} {
|
|
// CHECK: %[[NULL:.*]] = llvm.mlir.zero : !llvm.ptr
|
|
// CHECK: %[[TI_ADDR:.*]] = llvm.mlir.addressof @_ZTIi : !llvm.ptr
|
|
// CHECK: %[[LP:.*]] = llvm.landingpad (catch %[[TI_ADDR]] : !llvm.ptr) (catch %[[NULL]] : !llvm.ptr) : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[EXCEPTION_PTR:.*]] = llvm.extractvalue %[[LP]][0] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[TYPE_ID:.*]] = llvm.extractvalue %[[LP]][1] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: llvm.return
|
|
// CHECK: }
|
|
|
|
cir.func @inflight_exception_catch_all_only() personality(@__gxx_personality_v0) {
|
|
%exception_ptr, %type_id = cir.eh.inflight_exception catch_all
|
|
cir.return
|
|
}
|
|
|
|
// CHECK: llvm.func @inflight_exception_catch_all_only() attributes {personality = @__gxx_personality_v0} {
|
|
// CHECK: %[[NULL:.*]] = llvm.mlir.zero : !llvm.ptr
|
|
// CHECK: %[[LP:.*]] = llvm.landingpad (catch %[[NULL]] : !llvm.ptr) : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[EXCEPTION_PTR:.*]] = llvm.extractvalue %[[LP]][0] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: %[[TYPE_ID:.*]] = llvm.extractvalue %[[LP]][1] : !llvm.struct<(ptr, i32)>
|
|
// CHECK: llvm.return
|
|
// CHECK: }
|
|
|
|
|
|
}
|