brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 80123d4 Raw
76 lines · plain
1; Check that Module splitting can trace through more complex call stacks2; involving several nested indirect calls.3 4; RUN: llvm-split -split-by-category=module-id -S < %s -o %t5; RUN: FileCheck %s -input-file=%t_0.ll --check-prefix CHECK0 \6; RUN:     --implicit-check-not @foo --implicit-check-not @kernel_A \7; RUN:     --implicit-check-not @kernel_B --implicit-check-not @baz8; RUN: FileCheck %s -input-file=%t_1.ll --check-prefix CHECK1 \9; RUN:     --implicit-check-not @kernel_A --implicit-check-not @kernel_C10; RUN: FileCheck %s -input-file=%t_2.ll --check-prefix CHECK2 \11; RUN:     --implicit-check-not @foo --implicit-check-not @bar \12; RUN:     --implicit-check-not @BAZ --implicit-check-not @kernel_B \13; RUN:     --implicit-check-not @kernel_C14 15; RUN: llvm-split -split-by-category=kernel -S < %s -o %t16; RUN: FileCheck %s -input-file=%t_0.ll --check-prefix CHECK0 \17; RUN:     --implicit-check-not @foo --implicit-check-not @kernel_A \18; RUN:     --implicit-check-not @kernel_B19; RUN: FileCheck %s -input-file=%t_1.ll --check-prefix CHECK1 \20; RUN:     --implicit-check-not @kernel_A --implicit-check-not @kernel_C21; RUN: FileCheck %s -input-file=%t_2.ll --check-prefix CHECK2 \22; RUN:     --implicit-check-not @foo --implicit-check-not @bar \23; RUN:     --implicit-check-not @BAZ --implicit-check-not @kernel_B \24; RUN:     --implicit-check-not @kernel_C25 26; CHECK0-DAG: define spir_kernel void @kernel_C27; CHECK0-DAG: define spir_func i32 @bar28; CHECK0-DAG: define spir_func void @baz29; CHECK0-DAG: define spir_func void @BAZ30 31; CHECK1-DAG: define spir_kernel void @kernel_B32; CHECK1-DAG: define {{.*}}spir_func i32 @foo33; CHECK1-DAG: define spir_func i32 @bar34; CHECK1-DAG: define spir_func void @baz35; CHECK1-DAG: define spir_func void @BAZ36 37; CHECK2-DAG: define spir_kernel void @kernel_A38; CHECK2-DAG: define {{.*}}spir_func void @baz39 40define spir_func i32 @foo(i32 (i32, void ()*)* %ptr1, void ()* %ptr2) {41  %1 = call spir_func i32 %ptr1(i32 42, void ()* %ptr2)42  ret i32 %143}44 45define spir_func i32 @bar(i32 %arg, void ()* %ptr) {46  call spir_func void %ptr()47  ret i32 %arg48}49 50define spir_func void @baz() {51  ret void52}53 54define spir_func void @BAZ() {55  ret void56}57 58define spir_kernel void @kernel_A() #0 {59  call spir_func void @baz()60  ret void61}62 63define spir_kernel void @kernel_B() #1 {64  call spir_func i32 @foo(i32 (i32, void ()*)* null, void ()* null)65  ret void66}67 68define spir_kernel void @kernel_C() #2 {69  call spir_func i32 @bar(i32 42, void ()* null)70  ret void71}72 73attributes #0 = { "module-id"="TU1.cpp" }74attributes #1 = { "module-id"="TU2.cpp" }75attributes #2 = { "module-id"="TU3.cpp" }76