|
6 | 6 |
|
7 | 7 | // RUN: clang-offload-wrapper --help | FileCheck %s --check-prefix CHECK-HELP |
8 | 8 | // CHECK-HELP: OVERVIEW: A tool to create a wrapper bitcode for offload target binaries. |
9 | | -// CHECK-HELP: Takes offload target binaries and optional manifest files as input |
| 9 | +// CHECK-HELP: Takes offload target binaries as input |
10 | 10 | // CHECK-HELP: and produces bitcode file containing target binaries packaged as data |
11 | 11 | // CHECK-HELP: and initialization code which registers target binaries in the offload |
12 | | -// CHECK-HELP: runtime. Manifest files format and contents are not restricted and are |
13 | | -// CHECK-HELP: a subject of agreement between the device compiler and the native |
14 | | -// CHECK-HELP: runtime for that device. When present, manifest file name should |
15 | | -// CHECK-HELP: immediately follow the corresponding device image filename on the |
16 | | -// CHECK-HELP: command line. Options annotating a device binary have effect on all |
| 12 | +// CHECK-HELP: runtime. Options annotating a device binary have effect on all |
17 | 13 | // CHECK-HELP: subsequent input, until redefined. |
18 | 14 | // CHECK-HELP: For example: |
19 | 15 | // CHECK-HELP: clang-offload-wrapper \ |
|
26 | 22 | // CHECK-HELP: -entries=sym.txt \ |
27 | 23 | // CHECK-HELP: -properties=props.txt \ |
28 | 24 | // CHECK-HELP: a.spv \ |
29 | | -// CHECK-HELP: a_mf.txt \ |
30 | 25 | // CHECK-HELP: -target=xxx \ |
31 | 26 | // CHECK-HELP: -format=native \ |
32 | 27 | // CHECK-HELP: -compile-opts="" \ |
33 | 28 | // CHECK-HELP: -link-opts="" \ |
34 | 29 | // CHECK-HELP: -entries="" \ |
35 | 30 | // CHECK-HELP: -properties="" \ |
36 | 31 | // CHECK-HELP: b.bin \ |
37 | | -// CHECK-HELP: b_mf.txt \ |
38 | 32 | // CHECK-HELP: -kind=openmp \ |
39 | 33 | // CHECK-HELP: c.bin\n |
40 | 34 | // CHECK-HELP: This command generates an x86 wrapper object (.bc) enclosing the |
41 | 35 | // CHECK-HELP: following tuples describing a single device binary each: |
42 | | -// CHECK-HELP: |offload|target|data |data |manifest|compile|entries|properties|...| |
43 | | -// CHECK-HELP: | kind | |format| | |options| | |...| |
44 | | -// CHECK-HELP: |-------|------|------|-----|--------|-------|-------|----------|---| |
45 | | -// CHECK-HELP: |sycl |spir64|spirv |a.spv|a_mf.txt| -g |sym.txt|props.txt |...| |
46 | | -// CHECK-HELP: |sycl |xxx |native|b.bin|b_mf.txt| | | |...| |
47 | | -// CHECK-HELP: |openmp |xxx |native|c.bin| | | | |...| |
| 36 | +// CHECK-HELP: |offload|target|data |data |compile|entries|properties|...| |
| 37 | +// CHECK-HELP: | kind | |format| |options| | |...| |
| 38 | +// CHECK-HELP: |-------|------|------|-----|-------|-------|----------|---| |
| 39 | +// CHECK-HELP: |sycl |spir64|spirv |a.spv| -g |sym.txt|props.txt |...| |
| 40 | +// CHECK-HELP: |sycl |xxx |native|b.bin| | | |...| |
| 41 | +// CHECK-HELP: |openmp |xxx |native|c.bin| | | |...| |
48 | 42 | // CHECK-HELP: |...| link | |
49 | 43 | // CHECK-HELP: |...| options | |
50 | 44 | // CHECK-HELP: |---|--------------------| |
|
62 | 56 | // CHECK-HELP: Table files consist of a table of filenames that provide |
63 | 57 | // CHECK-HELP: Code, Symbols, Properties, etc. |
64 | 58 | // CHECK-HELP: Example input table file in batch mode: |
65 | | -// CHECK-HELP: [Code|Symbols|Properties|Manifest] |
66 | | -// CHECK-HELP: a_0.bc|a_0.sym|a_0.props|a_0.mnf |
| 59 | +// CHECK-HELP: [Code|Symbols|Properties] |
| 60 | +// CHECK-HELP: a_0.bc|a_0.sym|a_0.props |
67 | 61 | // CHECK-HELP: a_1.bin||| |
68 | 62 | // CHECK-HELP: Example usage: |
69 | 63 | // CHECK-HELP: clang-offload-wrapper -batch -host=x86_64-unknown-linux-gnu |
|
99 | 93 | // RUN: echo 'Content of device file1' > %t1.tgt |
100 | 94 | // RUN: echo 'Content of device file2' > %t2.tgt |
101 | 95 | // RUN: echo 'Content of device file3' > %t3.tgt |
102 | | -// RUN: echo 'Content of manifest file1' > %t1_mf.txt |
103 | 96 | // |
104 | 97 | // ------- |
105 | 98 | // Check bitcode produced by the wrapper tool. |
106 | 99 | // |
107 | 100 | // RUN: clang-offload-wrapper -add-omp-offload-notes \ |
108 | 101 | // RUN: -host=x86_64-pc-linux-gnu \ |
109 | | -// RUN: -kind=openmp -target=tg2 -format=native %t3.tgt %t1_mf.txt \ |
| 102 | +// RUN: -kind=openmp -target=tg2 -format=native %t3.tgt \ |
110 | 103 | // RUN: -kind=sycl -target=tg1 -compile-opts=-g -link-opts=-cl-denorms-are-zero \ |
111 | 104 | // RUN: -format spirv %t1.tgt \ |
112 | 105 | // RUN: -target=tg2 -compile-opts= -link-opts= \ |
|
123 | 116 | // CHECK-IR-DAG: [[DESCTY:%.+]] = type { i32, ptr, ptr, ptr } |
124 | 117 |
|
125 | 118 | // --- SYCL device binary image descriptor structure |
126 | | -// CHECK-IR-DAG: [[SYCL_IMAGETY:%.+]] = type { i16, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } |
| 119 | +// CHECK-IR-DAG: [[SYCL_IMAGETY:%.+]] = type { i16, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } |
127 | 120 | // CHECK-IR-DAG: [[SYCL_DESCTY:%.+]] = type { i16, i16, ptr, ptr, ptr } |
128 | 121 |
|
129 | 122 | // CHECK-IR: [[ENTBEGIN:@.+]] = external hidden constant [[ENTTY]] |
|
150 | 143 | // CHECK-IR: [[SYCL_BIN1:@.+]] = internal unnamed_addr constant [[SYCL_BIN1TY:\[[0-9]+ x i8\]]] c"Content of device file2{{.+}}" |
151 | 144 | // CHECK-IR: [[SYCL_INFO1:@.+]] = internal local_unnamed_addr constant [2 x i64] [i64 ptrtoint (ptr [[SYCL_BIN1]] to i64), i64 24], section ".tgtimg", align 16 |
152 | 145 |
|
153 | | -// CHECK-IR: [[SYCL_IMAGES:@.+]] = internal unnamed_addr constant [2 x [[SYCL_IMAGETY]]] [{{.*}} { i16 2, i8 4, i8 2, ptr [[SYCL_TGT0]], ptr [[SYCL_COMPILE_OPTS0]], ptr [[SYCL_LINK_OPTS0]], ptr null, ptr null, ptr [[SYCL_BIN0]], ptr getelementptr ([[SYCL_BIN0TY]], ptr [[SYCL_BIN0]], i64 0, i64 24), ptr null, ptr null, ptr null, ptr null }, [[SYCL_IMAGETY]] { i16 2, i8 4, i8 1, ptr [[SYCL_TGT1]], ptr [[SYCL_COMPILE_OPTS1]], ptr [[SYCL_LINK_OPTS1]], ptr null, ptr null, ptr [[SYCL_BIN1]], ptr getelementptr ([[SYCL_BIN1TY]], ptr [[SYCL_BIN1]], i64 0, i64 24), ptr null, ptr null, ptr null, ptr null }] |
| 146 | +// CHECK-IR: @llvm.used = appending global [3 x ptr] [ptr [[OMP_INFO]], ptr [[SYCL_INFO]], ptr [[SYCL_INFO1]]] |
| 147 | + |
| 148 | +// CHECK-IR: [[SYCL_IMAGES:@.+]] = internal unnamed_addr constant [2 x [[SYCL_IMAGETY]]] [{{.*}} { i16 3, i8 4, i8 2, ptr [[SYCL_TGT0]], ptr [[SYCL_COMPILE_OPTS0]], ptr [[SYCL_LINK_OPTS0]], ptr [[SYCL_BIN0]], ptr getelementptr ([24 x i8], ptr [[SYCL_BIN0]], i64 0, i64 24), ptr null, ptr null, ptr null, ptr null }, [[SYCL_IMAGETY]] { i16 3, i8 4, i8 1, ptr [[SYCL_TGT1]], ptr [[SYCL_COMPILE_OPTS1]], ptr [[SYCL_LINK_OPTS1]], ptr [[SYCL_BIN1]], ptr getelementptr ([24 x i8], ptr [[SYCL_BIN1]], i64 0, i64 24), ptr null, ptr null, ptr null, ptr null }] |
154 | 149 |
|
155 | 150 | // CHECK-IR: [[SYCL_DESC:@.+]] = internal constant [[SYCL_DESCTY]] { i16 1, i16 2, ptr [[SYCL_IMAGES]], ptr null, ptr null } |
156 | 151 |
|
|
189 | 184 | // |
190 | 185 | // RUN: clang-offload-wrapper -kind sycl -host=x86_64-pc-linux-gnu -emit-reg-funcs=0 -desc-name=lalala -o - %t.tgt | llvm-dis | FileCheck %s --check-prefix CHECK-IR1 |
191 | 186 | // CHECK-IR1: source_filename = "offload.wrapper.object" |
192 | | -// CHECK-IR1: [[IMAGETY:%.+]] = type { i16, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } |
| 187 | +// CHECK-IR1: [[IMAGETY:%.+]] = type { i16, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } |
193 | 188 | // CHECK-IR1: [[DESCTY:%.+]] = type { i16, i16, ptr, ptr, ptr } |
194 | 189 | // CHECK-IR1-NOT: @llvm.global_ctors |
195 | 190 | // CHECK-IR1-NOT: @llvm.global_dtors |
|
0 commit comments