Skip to content

Commit a0099a5

Browse files
authored
[Driver][SYCL] Enable multi-file for AOT (#3609)
When dealing with AOT compilations, we explicitly turned off multi-file processing. This behavior was preventing kernel name table generation. This effectively makes multi-file the default for all modes.
1 parent 1ef407e commit a0099a5

11 files changed

+235
-281
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 41 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3785,9 +3785,6 @@ class OffloadingActionBuilder final {
37853785
/// Flag to signal if the user requested device code split.
37863786
bool DeviceCodeSplit = false;
37873787

3788-
/// Flag to signal if DAE optimization is turned on.
3789-
bool EnableDAE = false;
3790-
37913788
/// The SYCL actions for the current input.
37923789
ActionList SYCLDeviceActions;
37933790

@@ -4278,33 +4275,33 @@ class OffloadingActionBuilder final {
42784275
// .--------------------------------------.
42794276
// | PostLink |
42804277
// .--------------------------------------.
4281-
// [.n] [.!na!s] [+*] [+*]
4282-
// | | | |
4283-
// | | .----------------. |
4284-
// | | |FileTableTform | |
4285-
// | | |(extract "Code")| |
4286-
// | | .----------------. |
4287-
// | | [-] |
4288-
// | | | |
4289-
// | [.a!s] [-*] |
4290-
// .-------------. .---------------------. |
4291-
// |finalizeNVPTX| | SPIRVTranslator | |
4292-
// .-------------. .---------------------. |
4293-
// | [.a!s] [-as] [-!a] |
4294-
// | | | | |
4295-
// | [.!s] [-s] | |
4296-
// | .----------------. | |
4297-
// | | BackendCompile | | |
4298-
// | .----------------. | |
4299-
// | [.!s] [-s] | |
4300-
// | | | | |
4301-
// | | [-a] [-!a] [+]
4302-
// | | .----------------.
4303-
// | | |FileTableTform |
4304-
// | | |(replace "Code")|
4305-
// | | .----------------.
4306-
// | | |
4307-
// [.n] [.!na!s] [+*]
4278+
// [.n] [+*] [+*]
4279+
// | | |
4280+
// | .-----------------. |
4281+
// | | FileTableTform | |
4282+
// | | (extract "Code")| |
4283+
// | .-----------------. |
4284+
// | [-] |
4285+
// | | |
4286+
// | [-*] |
4287+
// .-------------. .-------------------. |
4288+
// |finalizeNVPTX| | SPIRVTranslator | |
4289+
// .-------------. .-------------------. |
4290+
// | [-as] [-!a] |
4291+
// | | | |
4292+
// | [-s] | |
4293+
// | .----------------. | |
4294+
// | | BackendCompile | | |
4295+
// | .----------------. | |
4296+
// | [-s] | |
4297+
// | | | |
4298+
// | [-a] [-!a] [+]
4299+
// | .--------------------.
4300+
// | | FileTableTform |
4301+
// | | (replace "Code") |
4302+
// | .--------------------.
4303+
// | |
4304+
// [.n] [+*]
43084305
// .--------------------------------------.
43094306
// | OffloadWrapper |
43104307
// .--------------------------------------.
@@ -4351,10 +4348,8 @@ class OffloadingActionBuilder final {
43514348
ActionList WrapperInputs;
43524349
// post link is not optional - even if not splitting, always need to
43534350
// process specialization constants
4354-
bool MultiFileActionDeps = !isSpirvAOT || DeviceCodeSplit || EnableDAE;
4355-
types::ID PostLinkOutType = isNVPTX || !MultiFileActionDeps
4356-
? types::TY_LLVM_BC
4357-
: types::TY_Tempfiletable;
4351+
types::ID PostLinkOutType =
4352+
isNVPTX ? types::TY_LLVM_BC : types::TY_Tempfiletable;
43584353
auto *PostLinkAction = C.MakeAction<SYCLPostLinkJobAction>(
43594354
FullDeviceLinkAction, PostLinkOutType);
43604355
PostLinkAction->setRTSetsSpecConstants(!isAOT);
@@ -4366,21 +4361,14 @@ class OffloadingActionBuilder final {
43664361
} else {
43674362
// For SPIRV-based targets - translate to SPIRV then optionally
43684363
// compile ahead-of-time to native architecture
4369-
Action *SPIRVInput = PostLinkAction;
43704364
constexpr char COL_CODE[] = "Code";
4371-
4372-
if (MultiFileActionDeps) {
4373-
auto *ExtractIRFilesAction = C.MakeAction<FileTableTformJobAction>(
4374-
PostLinkAction, types::TY_Tempfilelist);
4375-
// single column w/o title fits TY_Tempfilelist format
4376-
ExtractIRFilesAction->addExtractColumnTform(COL_CODE,
4377-
false /*drop titles*/);
4378-
SPIRVInput = ExtractIRFilesAction;
4379-
}
4380-
types::ID SPIRVOutType =
4381-
MultiFileActionDeps ? types::TY_Tempfilelist : types::TY_SPIRV;
4382-
Action *BuildCodeAction =
4383-
C.MakeAction<SPIRVTranslatorJobAction>(SPIRVInput, SPIRVOutType);
4365+
auto *ExtractIRFilesAction = C.MakeAction<FileTableTformJobAction>(
4366+
PostLinkAction, types::TY_Tempfilelist);
4367+
// single column w/o title fits TY_Tempfilelist format
4368+
ExtractIRFilesAction->addExtractColumnTform(COL_CODE,
4369+
false /*drop titles*/);
4370+
Action *BuildCodeAction = C.MakeAction<SPIRVTranslatorJobAction>(
4371+
ExtractIRFilesAction, types::TY_Tempfilelist);
43844372

43854373
// After the Link, wrap the files before the final host link
43864374
if (isSpirvAOT) {
@@ -4412,14 +4400,11 @@ class OffloadingActionBuilder final {
44124400
BuildCodeAction =
44134401
C.MakeAction<BackendCompileJobAction>(BEInputs, OutType);
44144402
}
4415-
if (MultiFileActionDeps) {
4416-
ActionList TformInputs{PostLinkAction, BuildCodeAction};
4417-
auto *ReplaceFilesAction = C.MakeAction<FileTableTformJobAction>(
4418-
TformInputs, types::TY_Tempfiletable);
4419-
ReplaceFilesAction->addReplaceColumnTform(COL_CODE, COL_CODE);
4420-
BuildCodeAction = ReplaceFilesAction;
4421-
}
4422-
WrapperInputs.push_back(BuildCodeAction);
4403+
ActionList TformInputs{PostLinkAction, BuildCodeAction};
4404+
auto *ReplaceFilesAction = C.MakeAction<FileTableTformJobAction>(
4405+
TformInputs, types::TY_Tempfiletable);
4406+
ReplaceFilesAction->addReplaceColumnTform(COL_CODE, COL_CODE);
4407+
WrapperInputs.push_back(ReplaceFilesAction);
44234408
}
44244409
// After the Link, wrap the files before the final host link
44254410
auto *DeviceWrappingAction = C.MakeAction<OffloadWrapperJobAction>(
@@ -4523,9 +4508,6 @@ class OffloadingActionBuilder final {
45234508
WrapDeviceOnlyBinary = Args.hasArg(options::OPT_fsycl_link_EQ);
45244509
auto *DeviceCodeSplitArg =
45254510
Args.getLastArg(options::OPT_fsycl_device_code_split_EQ);
4526-
EnableDAE =
4527-
Args.hasFlag(options::OPT_fsycl_dead_args_optimization,
4528-
options::OPT_fno_sycl_dead_args_optimization, false);
45294511
// -fsycl-device-code-split is an alias to
45304512
// -fsycl-device-code-split=per_source
45314513
DeviceCodeSplit = DeviceCodeSplitArg &&

clang/test/Driver/sycl-intelfpga-aoco-win.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,17 @@
2727
// CHK-FPGA-AOCO-PHASES-WIN: 13: input, "[[INPUTA]]", archive
2828
// CHK-FPGA-AOCO-PHASES-WIN: 14: clang-offload-unbundler, {13}, archive
2929
// CHK-FPGA-AOCO-PHASES-WIN: 15: linker, {5, 12, 14}, ir, (device-sycl)
30-
// CHK-FPGA-AOCO-PHASES-WIN: 16: sycl-post-link, {15}, ir, (device-sycl)
31-
// CHK-FPGA-AOCO-PHASES-WIN: 17: llvm-spirv, {16}, spirv, (device-sycl)
32-
// CHK-FPGA-AOCO-PHASES-WIN: 18: input, "[[INPUTA]]", archive
33-
// CHK-FPGA-AOCO-PHASES-WIN: 19: clang-offload-unbundler, {18}, fpga_dep_list
34-
// CHK-FPGA-AOCO-PHASES-WIN: 20: input, "[[INPUTA]]", fpga_aoco
35-
// CHK-FPGA-AOCO-PHASES-WIN: 21: clang-offload-unbundler, {20}, fpga_aoco
36-
// CHK-FPGA-AOCO-PHASES-WIN: 22: backend-compiler, {17, 19, 21}, fpga_aocx, (device-sycl)
37-
// CHK-FPGA-AOCO-PHASES-WIN: 23: clang-offload-wrapper, {22}, object, (device-sycl)
38-
// CHK-FPGA-AOCO-PHASES-WIN: 24: offload, "host-sycl (x86_64-pc-windows-msvc)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {23}, image
30+
// CHK-FPGA-AOCO-PHASES-WIN: 16: sycl-post-link, {15}, tempfiletable, (device-sycl)
31+
// CHK-FPGA-AOCO-PHASES-WIN: 17: file-table-tform, {16}, tempfilelist, (device-sycl)
32+
// CHK-FPGA-AOCO-PHASES-WIN: 18: llvm-spirv, {17}, tempfilelist, (device-sycl)
33+
// CHK-FPGA-AOCO-PHASES-WIN: 19: input, "[[INPUTA]]", archive
34+
// CHK-FPGA-AOCO-PHASES-WIN: 20: clang-offload-unbundler, {19}, fpga_dep_list
35+
// CHK-FPGA-AOCO-PHASES-WIN: 21: input, "[[INPUTA]]", fpga_aoco
36+
// CHK-FPGA-AOCO-PHASES-WIN: 22: clang-offload-unbundler, {21}, fpga_aoco
37+
// CHK-FPGA-AOCO-PHASES-WIN: 23: backend-compiler, {18, 20, 22}, fpga_aocx, (device-sycl)
38+
// CHK-FPGA-AOCO-PHASES-WIN: 24: file-table-tform, {16, 23}, tempfiletable, (device-sycl)
39+
// CHK-FPGA-AOCO-PHASES-WIN: 25: clang-offload-wrapper, {24}, object, (device-sycl)
40+
// CHK-FPGA-AOCO-PHASES-WIN: 26: offload, "host-sycl (x86_64-pc-windows-msvc)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {25}, image
3941

4042
/// aoco test, checking tools
4143
// RUN: %clang_cl -fsycl -fno-sycl-device-lib=all -fintelfpga -foffload-static-lib=%t_aoco.a -Xshardware -### %s 2>&1 \
@@ -44,12 +46,12 @@
4446
// RUN: | FileCheck -check-prefix=CHK-FPGA-AOCO %s
4547
// CHK-FPGA-AOCO: clang-offload-bundler{{.*}} "-type=a" "-targets=sycl-spir64_fpga-unknown-unknown-sycldevice" "-inputs=[[INPUTLIB:.+\.a]]" "-outputs=[[OUTLIB:.+\.a]]" "-unbundle"
4648
// CHK-FPGA-AOCO: llvm-link{{.*}} "[[OUTLIB]]" "-o" "[[LINKEDBC:.+\.bc]]"
47-
// CHK-FPGA-AOCO: sycl-post-link
48-
// CHK-FPGA-AOCO-NOT: -split-esimd
49-
// CHK-FPGA-AOCO: "-ir-output-only" "-O2" "-spec-const=default" "-o" "[[PLINKEDBC:.+\.bc]]" "[[LINKEDBC]]"
50-
// CHK-FPGA-AOCO: llvm-spirv{{.*}} "-o" "[[TARGSPV:.+\.spv]]" {{.*}} "[[PLINKEDBC]]"
49+
// CHK-FPGA-AOCO: sycl-post-link{{.*}} "-split-esimd"{{.*}} "-O2" "-spec-const=default" "-o" "[[SPLTABLE:.+\.table]]" "[[LINKEDBC]]"
50+
// CHK-FPGA-AOCO: file-table-tform{{.*}} "-o" "[[TABLEOUT:.+\.txt]]" "[[SPLTABLE]]"
51+
// CHK-FPGA-AOCO: llvm-spirv{{.*}} "-o" "[[TARGSPV:.+\.txt]]" {{.*}} "[[TABLEOUT]]"
5152
// CHK-FPGA-AOCO: clang-offload-bundler{{.*}} "-type=aoo" "-targets=sycl-fpga_aoco-intel-unknown-sycldevice" "-inputs=[[INPUTLIB]]" "-outputs=[[AOCOLIST:.+\.txt]]" "-unbundle"
5253
// CHK-FPGA-AOCO: aoc{{.*}} "-o" "[[AOCXOUT:.+\.aocx]]" "[[TARGSPV]]" "-library-list=[[AOCOLIST]]" "-sycl"
53-
// CHK-FPGA-AOCO: clang-offload-wrapper{{.*}} "-o=[[FINALBC:.+\.bc]]" {{.*}} "-target=spir64_fpga" "-kind=sycl" "[[AOCXOUT]]"
54+
// CHK-FPGA-AOCO: file-table-tform{{.*}} "-o" "[[TABLEOUT2:.+\.table]]" "[[SPLTABLE]]" "[[AOCXOUT]]"
55+
// CHK-FPGA-AOCO: clang-offload-wrapper{{.*}} "-o=[[FINALBC:.+\.bc]]" {{.*}} "-target=spir64_fpga" "-kind=sycl" "-batch" "[[TABLEOUT2]]"
5456
// CHK-FPGA-AOCO: llc{{.*}} "-filetype=obj" "-o" "[[FINALOBJW:.+\.obj]]" "[[FINALBC]]"
5557
// CHK-FPGA-AOCO: link.exe{{.*}} "{{.*}}[[INPUTLIB]]" {{.*}} "[[FINALOBJW]]"

clang/test/Driver/sycl-intelfpga-aoco.cpp

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@
3131
// CHK-FPGA-AOCO-PHASES: 13: input, "[[INPUTA]]", archive
3232
// CHK-FPGA-AOCO-PHASES: 14: clang-offload-unbundler, {13}, archive
3333
// CHK-FPGA-AOCO-PHASES: 15: linker, {5, 12, 14}, ir, (device-sycl)
34-
// CHK-FPGA-AOCO-PHASES: 16: sycl-post-link, {15}, ir, (device-sycl)
35-
// CHK-FPGA-AOCO-PHASES: 17: llvm-spirv, {16}, spirv, (device-sycl)
36-
// CHK-FPGA-AOCO-PHASES: 18: input, "[[INPUTA]]", archive
37-
// CHK-FPGA-AOCO-PHASES: 19: clang-offload-unbundler, {18}, fpga_dep_list
38-
// CHK-FPGA-AOCO-PHASES: 20: input, "[[INPUTA]]", fpga_aoco
39-
// CHK-FPGA-AOCO-PHASES: 21: clang-offload-unbundler, {20}, fpga_aoco
40-
// CHK-FPGA-AOCO-PHASES: 22: backend-compiler, {17, 19, 21}, fpga_aocx, (device-sycl)
41-
// CHK-FPGA-AOCO-PHASES: 23: clang-offload-wrapper, {22}, object, (device-sycl)
42-
// CHK-FPGA-AOCO-PHASES: 24: offload, "host-sycl (x86_64-unknown-linux-gnu)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {23}, image
34+
// CHK-FPGA-AOCO-PHASES: 16: sycl-post-link, {15}, tempfiletable, (device-sycl)
35+
// CHK-FPGA-AOCO-PHASES: 17: file-table-tform, {16}, tempfilelist, (device-sycl)
36+
// CHK-FPGA-AOCO-PHASES: 18: llvm-spirv, {17}, tempfilelist, (device-sycl)
37+
// CHK-FPGA-AOCO-PHASES: 19: input, "[[INPUTA]]", archive
38+
// CHK-FPGA-AOCO-PHASES: 20: clang-offload-unbundler, {19}, fpga_dep_list
39+
// CHK-FPGA-AOCO-PHASES: 21: input, "[[INPUTA]]", fpga_aoco
40+
// CHK-FPGA-AOCO-PHASES: 22: clang-offload-unbundler, {21}, fpga_aoco
41+
// CHK-FPGA-AOCO-PHASES: 23: backend-compiler, {18, 20, 22}, fpga_aocx, (device-sycl)
42+
// CHK-FPGA-AOCO-PHASES: 24: file-table-tform, {16, 23}, tempfiletable, (device-sycl)
43+
// CHK-FPGA-AOCO-PHASES: 25: clang-offload-wrapper, {24}, object, (device-sycl)
44+
// CHK-FPGA-AOCO-PHASES: 26: offload, "host-sycl (x86_64-unknown-linux-gnu)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {25}, image
4345

4446
/// FPGA AOCO Windows phases check
4547
// RUN: %clang_cl -fsycl -fno-sycl-device-lib=all -fintelfpga -foffload-static-lib=%t_aoco_cl.a %s -ccc-print-phases 2>&1 \
@@ -60,15 +62,17 @@
6062
// CHK-FPGA-AOCO-PHASES-WIN: 13: input, "[[INPUTA]]", archive
6163
// CHK-FPGA-AOCO-PHASES-WIN: 14: clang-offload-unbundler, {13}, archive
6264
// CHK-FPGA-AOCO-PHASES-WIN: 15: linker, {5, 12, 14}, ir, (device-sycl)
63-
// CHK-FPGA-AOCO-PHASES-WIN: 16: sycl-post-link, {15}, ir, (device-sycl)
64-
// CHK-FPGA-AOCO-PHASES-WIN: 17: llvm-spirv, {16}, spirv, (device-sycl)
65-
// CHK-FPGA-AOCO-PHASES-WIN: 18: input, "[[INPUTA]]", archive
66-
// CHK-FPGA-AOCO-PHASES-WIN: 19: clang-offload-unbundler, {18}, fpga_dep_list
67-
// CHK-FPGA-AOCO-PHASES-WIN: 20: input, "[[INPUTA]]", fpga_aoco
68-
// CHK-FPGA-AOCO-PHASES-WIN: 21: clang-offload-unbundler, {20}, fpga_aoco
69-
// CHK-FPGA-AOCO-PHASES-WIN: 22: backend-compiler, {17, 19, 21}, fpga_aocx, (device-sycl)
70-
// CHK-FPGA-AOCO-PHASES-WIN: 23: clang-offload-wrapper, {22}, object, (device-sycl)
71-
// CHK-FPGA-AOCO-PHASES-WIN: 24: offload, "host-sycl (x86_64-pc-windows-msvc)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {23}, image
65+
// CHK-FPGA-AOCO-PHASES-WIN: 16: sycl-post-link, {15}, tempfiletable, (device-sycl)
66+
// CHK-FPGA-AOCO-PHASES-WIN: 17: file-table-tform, {16}, tempfilelist, (device-sycl)
67+
// CHK-FPGA-AOCO-PHASES-WIN: 18: llvm-spirv, {17}, tempfilelist, (device-sycl)
68+
// CHK-FPGA-AOCO-PHASES-WIN: 19: input, "[[INPUTA]]", archive
69+
// CHK-FPGA-AOCO-PHASES-WIN: 20: clang-offload-unbundler, {19}, fpga_dep_list
70+
// CHK-FPGA-AOCO-PHASES-WIN: 21: input, "[[INPUTA]]", fpga_aoco
71+
// CHK-FPGA-AOCO-PHASES-WIN: 22: clang-offload-unbundler, {21}, fpga_aoco
72+
// CHK-FPGA-AOCO-PHASES-WIN: 23: backend-compiler, {18, 20, 22}, fpga_aocx, (device-sycl)
73+
// CHK-FPGA-AOCO-PHASES-WIN: 24: file-table-tform, {16, 23}, tempfiletable, (device-sycl)
74+
// CHK-FPGA-AOCO-PHASES-WIN: 25: clang-offload-wrapper, {24}, object, (device-sycl)
75+
// CHK-FPGA-AOCO-PHASES-WIN: 26: offload, "host-sycl (x86_64-pc-windows-msvc)" {10}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {25}, image
7276

7377
/// aoco test, checking tools
7478
// RUN: %clangxx -target x86_64-unknown-linux-gnu -fsycl -fno-sycl-device-lib=all -fintelfpga -Xshardware -foffload-static-lib=%t_aoco.a -### %s 2>&1 \
@@ -81,13 +85,13 @@
8185
// RUN: | FileCheck -check-prefixes=CHK-FPGA-AOCO,CHK-FPGA-AOCO-WIN %s
8286
// CHK-FPGA-AOCO: clang-offload-bundler{{.*}} "-type=a" "-targets=sycl-spir64_fpga-unknown-unknown-sycldevice" "-inputs=[[INPUTLIB:.+\.a]]" "-outputs=[[OUTLIB:.+\.a]]" "-unbundle"
8387
// CHK-FPGA-AOCO: llvm-link{{.*}} "[[OUTLIB]]" "-o" "[[LINKEDBC:.+\.bc]]"
84-
// CHK-FPGA-AOCO: sycl-post-link
85-
// CHK-FPGA-AOCO-NOT: "-split-esimd"
86-
// CHK-FPGA-AOCO: "-ir-output-only" "-O2" "-spec-const=default" "-o" "[[PLINKEDBC:.+\.bc]]" "[[LINKEDBC]]"
87-
// CHK-FPGA-AOCO: llvm-spirv{{.*}} "-o" "[[TARGSPV:.+\.spv]]" {{.*}} "[[PLINKEDBC]]"
88+
// CHK-FPGA-AOCO: sycl-post-link{{.*}} "-split-esimd"{{.*}} "-O2" "-spec-const=default" "-o" "[[SPLTABLE:.+\.table]]" "[[LINKEDBC]]"
89+
// CHK-FPGA-AOCO: file-table-tform{{.*}} "-o" "[[TABLEOUT:.+\.txt]]" "[[SPLTABLE]]"
90+
// CHK-FPGA-AOCO: llvm-spirv{{.*}} "-o" "[[TARGSPV:.+\.txt]]" {{.*}} "[[TABLEOUT]]"
8891
// CHK-FPGA-AOCO: clang-offload-bundler{{.*}} "-type=aoo" "-targets=sycl-fpga_aoco-intel-unknown-sycldevice" "-inputs=[[INPUTLIB]]" "-outputs=[[AOCOLIST:.+\.txt]]" "-unbundle"
8992
// CHK-FPGA-AOCO: aoc{{.*}} "-o" "[[AOCXOUT:.+\.aocx]]" "[[TARGSPV]]" "-library-list=[[AOCOLIST]]" "-sycl"
90-
// CHK-FPGA-AOCO: clang-offload-wrapper{{.*}} "-o=[[FINALBC:.+\.bc]]" {{.*}} "-target=spir64_fpga" "-kind=sycl" "[[AOCXOUT]]"
93+
// CHK-FPGA-AOCO: file-table-tform{{.*}} "-o" "[[TABLEOUT2:.+\.table]]" "[[SPLTABLE]]" "[[AOCXOUT]]"
94+
// CHK-FPGA-AOCO: clang-offload-wrapper{{.*}} "-o=[[FINALBC:.+\.bc]]" {{.*}} "-target=spir64_fpga" "-kind=sycl" "-batch" "[[TABLEOUT2]]"
9195
// CHK-FPGA-AOCO-LIN: llc{{.*}} "-filetype=obj" "-o" "[[FINALOBJL:.+\.o]]" "[[FINALBC]]"
9296
// CHK-FPGA-AOCO-WIN: llc{{.*}} "-filetype=obj" "-o" "[[FINALOBJW:.+\.obj]]" "[[FINALBC]]"
9397
// CHK-FPGA-AOCO-LIN: ld{{.*}} "[[INPUTLIB]]" {{.*}} "[[FINALOBJL]]"

clang/test/Driver/sycl-intelfpga-static-lib-win.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@
2020
// CHECK_PHASES: 4: input, "[[INPUT]]", archive
2121
// CHECK_PHASES: 5: clang-offload-unbundler, {4}, archive
2222
// CHECK_PHASES: 6: linker, {3, 5}, ir, (device-sycl)
23-
// CHECK_PHASES: 7: sycl-post-link, {6}, ir, (device-sycl)
24-
// CHECK_PHASES: 8: llvm-spirv, {7}, spirv, (device-sycl)
25-
// CHECK_PHASES: 9: input, "[[INPUT]]", archive
26-
// CHECK_PHASES: 10: clang-offload-unbundler, {9}, fpga_dep_list
27-
// CHECK_PHASES: 11: backend-compiler, {8, 10}, fpga_aocx, (device-sycl)
28-
// CHECK_PHASES: 12: clang-offload-wrapper, {11}, object, (device-sycl)
29-
// CHECK_PHASES: 13: offload, "host-sycl (x86_64-pc-windows-msvc)" {1}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {12}, image
23+
// CHECK_PHASES: 7: sycl-post-link, {6}, tempfiletable, (device-sycl)
24+
// CHECK_PHASES: 8: file-table-tform, {7}, tempfilelist, (device-sycl)
25+
// CHECK_PHASES: 9: llvm-spirv, {8}, tempfilelist, (device-sycl)
26+
// CHECK_PHASES: 10: input, "[[INPUT]]", archive
27+
// CHECK_PHASES: 11: clang-offload-unbundler, {10}, fpga_dep_list
28+
// CHECK_PHASES: 12: backend-compiler, {9, 11}, fpga_aocx, (device-sycl)
29+
// CHECK_PHASES: 13: file-table-tform, {7, 12}, tempfiletable, (device-sycl)
30+
// CHECK_PHASES: 14: clang-offload-wrapper, {13}, object, (device-sycl)
31+
// CHECK_PHASES: 15: offload, "host-sycl (x86_64-pc-windows-msvc)" {1}, "device-sycl (spir64_fpga-unknown-unknown-sycldevice)" {14}, image
3032

3133
/// Check for unbundle and use of deps in static lib
3234
// RUN: %clang_cl --target=x86_64-pc-windows-msvc -fsycl -fno-sycl-device-lib=all -fintelfpga -Xshardware %t.lib -### 2>&1 \

0 commit comments

Comments
 (0)