brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 0c80602 Raw
50 lines · plain
1; Check that Module splitting can trace indirect calls through signatures.2 3; RUN: llvm-split -split-by-category=module-id -S < %s -o %t4; RUN: FileCheck %s -input-file=%t_0.ll --check-prefix CHECK0 \5; RUN:     --implicit-check-not @kernel_A --implicit-check-not @bbb6; RUN: FileCheck %s -input-file=%t_1.ll --check-prefix CHECK1 \7; RUN:     --implicit-check-not @kernel_B --implicit-check-not @ccc8 9; RUN: llvm-split -split-by-category=kernel -S < %s -o %t10; RUN: FileCheck %s -input-file=%t_0.ll --check-prefix CHECK0 \11; RUN:     --implicit-check-not @kernel_A12; RUN: FileCheck %s -input-file=%t_1.ll --check-prefix CHECK1 \13; RUN:     --implicit-check-not @kernel_B14 15; CHECK0-DAG: define spir_kernel void @kernel_B16; CHECK0-DAG: define spir_func void @aaa(i32 %0, i32 %1)17; CHECK0-DAG: define spir_func void @ccc(ptr %ptr)18 19; CHECK1-DAG: define spir_kernel void @kernel_A20; CHECK1-DAG: define spir_func void @aaa(i32 %0, i32 %1)21; CHECK1-DAG: define spir_func void @bbb(ptr %ptr)22 23 24define spir_func void @aaa(i32 %0, i32 %1) {25  ret void26}27 28define spir_func void @bbb(void (i32, i32)* %ptr) {29  call spir_func void %ptr(i32 0, i32 0)30  ret void31}32 33define spir_func void @ccc(void (i32, i32)* %ptr) {34  call spir_func void %ptr(i32 0, i32 0)35  ret void36}37 38define spir_kernel void @kernel_A() #0 {39  call spir_func void @bbb(void (i32, i32)* null)40  ret void41}42 43define spir_kernel void @kernel_B() #1 {44  call spir_func void @ccc(void (i32, i32)* null)45  ret void46}47 48attributes #0 = { "module-id"="TU1.cpp" }49attributes #1 = { "module-id"="TU2.cpp" }50