Skip to content

Commit d3d9d2c

Browse files
mdtoguchibader
authored andcommitted
[SYCL] do not process libraries in SYCL device toolchain
When working files in the SYCL toolchain, we do not want to process libraries. These are not used in the toolchain and can interfere with output file naming expectations during the link job creation Signed-off-by: Michael D Toguchi <[email protected]>
1 parent 940d336 commit d3d9d2c

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3237,6 +3237,10 @@ class OffloadingActionBuilder final {
32373237
IA->getType() == types::TY_Object && isObjectFile(InputName))
32383238
return ABRT_Inactive;
32393239

3240+
// Libraries are not processed in the SYCL toolchain
3241+
if (IA->getType() == types::TY_Object && !isObjectFile(InputName))
3242+
return ABRT_Inactive;
3243+
32403244
for (unsigned I = 0; I < ToolChains.size(); ++I)
32413245
SYCLDeviceActions.push_back(
32423246
C.MakeAction<InputAction>(IA->getInputArg(), IA->getType()));

clang/test/Driver/sycl-offload.c

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,12 @@
150150
// CHK-PHASES-LIB: 8: backend, {7}, assembler, (host-sycl)
151151
// CHK-PHASES-LIB: 9: assembler, {8}, object, (host-sycl)
152152
// CHK-PHASES-LIB: 10: linker, {0, 9}, image, (host-sycl)
153-
// CHK-PHASES-LIB: 11: input, "somelib", object, (device-sycl)
154-
// CHK-PHASES-LIB: 12: compiler, {4}, ir, (device-sycl)
155-
// CHK-PHASES-LIB: 13: backend, {12}, assembler, (device-sycl)
156-
// CHK-PHASES-LIB: 14: assembler, {13}, object, (device-sycl)
157-
// CHK-PHASES-LIB: 15: linker, {11, 14}, spirv, (device-sycl)
158-
// CHK-PHASES-LIB: 16: clang-offload-wrapper, {15}, object, (device-sycl)
159-
// CHK-PHASES-LIB: 17: offload, "host-sycl (x86_64-unknown-linux-gnu)" {10}, "device-sycl (spir64-unknown-linux-sycldevice)" {16}, image
153+
// CHK-PHASES-LIB: 11: compiler, {4}, ir, (device-sycl)
154+
// CHK-PHASES-LIB: 12: backend, {11}, assembler, (device-sycl)
155+
// CHK-PHASES-LIB: 13: assembler, {12}, object, (device-sycl)
156+
// CHK-PHASES-LIB: 14: linker, {13}, spirv, (device-sycl)
157+
// CHK-PHASES-LIB: 15: clang-offload-wrapper, {14}, object, (device-sycl)
158+
// CHK-PHASES-LIB: 16: offload, "host-sycl (x86_64-unknown-linux-gnu)" {10}, "device-sycl (spir64-unknown-linux-sycldevice)" {15}, image
160159

161160
/// ###########################################################################
162161

@@ -185,16 +184,15 @@
185184
// CHK-PHASES-FILES: 17: backend, {16}, assembler, (host-sycl)
186185
// CHK-PHASES-FILES: 18: assembler, {17}, object, (host-sycl)
187186
// CHK-PHASES-FILES: 19: linker, {0, 9, 18}, image, (host-sycl)
188-
// CHK-PHASES-FILES: 20: input, "somelib", object, (device-sycl)
189-
// CHK-PHASES-FILES: 21: compiler, {4}, ir, (device-sycl)
190-
// CHK-PHASES-FILES: 22: backend, {21}, assembler, (device-sycl)
191-
// CHK-PHASES-FILES: 23: assembler, {22}, object, (device-sycl)
192-
// CHK-PHASES-FILES: 24: compiler, {13}, ir, (device-sycl)
193-
// CHK-PHASES-FILES: 25: backend, {24}, assembler, (device-sycl)
194-
// CHK-PHASES-FILES: 26: assembler, {25}, object, (device-sycl)
195-
// CHK-PHASES-FILES: 27: linker, {20, 23, 26}, spirv, (device-sycl)
196-
// CHK-PHASES-FILES: 28: clang-offload-wrapper, {27}, object, (device-sycl)
197-
// CHK-PHASES-FILES: 29: offload, "host-sycl (x86_64-unknown-linux-gnu)" {19}, "device-sycl (spir64-unknown-linux-sycldevice)" {28}, image
187+
// CHK-PHASES-FILES: 20: compiler, {4}, ir, (device-sycl)
188+
// CHK-PHASES-FILES: 21: backend, {20}, assembler, (device-sycl)
189+
// CHK-PHASES-FILES: 22: assembler, {21}, object, (device-sycl)
190+
// CHK-PHASES-FILES: 23: compiler, {13}, ir, (device-sycl)
191+
// CHK-PHASES-FILES: 24: backend, {23}, assembler, (device-sycl)
192+
// CHK-PHASES-FILES: 25: assembler, {24}, object, (device-sycl)
193+
// CHK-PHASES-FILES: 26: linker, {22, 25}, spirv, (device-sycl)
194+
// CHK-PHASES-FILES: 27: clang-offload-wrapper, {26}, object, (device-sycl)
195+
// CHK-PHASES-FILES: 28: offload, "host-sycl (x86_64-unknown-linux-gnu)" {19}, "device-sycl (spir64-unknown-linux-sycldevice)" {27}, image
198196

199197
/// ###########################################################################
200198

@@ -226,10 +224,9 @@
226224
// CHK-UBACTIONS: 1: input, "[[INPUT:.+\.o]]", object, (host-sycl)
227225
// CHK-UBACTIONS: 2: clang-offload-unbundler, {1}, object, (host-sycl)
228226
// CHK-UBACTIONS: 3: linker, {0, 2}, image, (host-sycl)
229-
// CHK-UBACTIONS: 4: input, "somelib", object, (device-sycl)
230-
// CHK-UBACTIONS: 5: linker, {4, 2}, spirv, (device-sycl)
231-
// CHK-UBACTIONS: 6: clang-offload-wrapper, {5}, object, (device-sycl)
232-
// CHK-UBACTIONS: 7: offload, "host-sycl (x86_64-unknown-linux-gnu)" {3}, "device-sycl (spir64-unknown-linux-sycldevice)" {6}, image
227+
// CHK-UBACTIONS: 4: linker, {2}, spirv, (device-sycl)
228+
// CHK-UBACTIONS: 5: clang-offload-wrapper, {4}, object, (device-sycl)
229+
// CHK-UBACTIONS: 6: offload, "host-sycl (x86_64-unknown-linux-gnu)" {3}, "device-sycl (spir64-unknown-linux-sycldevice)" {5}, image
233230

234231
/// ###########################################################################
235232

@@ -250,13 +247,12 @@
250247
// CHK-UBUACTIONS: 10: backend, {9}, assembler, (host-sycl)
251248
// CHK-UBUACTIONS: 11: assembler, {10}, object, (host-sycl)
252249
// CHK-UBUACTIONS: 12: linker, {0, 2, 11}, image, (host-sycl)
253-
// CHK-UBUACTIONS: 13: input, "somelib", object, (device-sycl)
254-
// CHK-UBUACTIONS: 14: compiler, {6}, ir, (device-sycl)
255-
// CHK-UBUACTIONS: 15: backend, {14}, assembler, (device-sycl)
256-
// CHK-UBUACTIONS: 16: assembler, {15}, object, (device-sycl)
257-
// CHK-UBUACTIONS: 17: linker, {13, 2, 16}, spirv, (device-sycl)
258-
// CHK-UBUACTIONS: 18: clang-offload-wrapper, {17}, object, (device-sycl)
259-
// CHK-UBUACTIONS: 19: offload, "host-sycl (x86_64-unknown-linux-gnu)" {12}, "device-sycl (spir64-unknown-linux-sycldevice)" {18}, image
250+
// CHK-UBUACTIONS: 13: compiler, {6}, ir, (device-sycl)
251+
// CHK-UBUACTIONS: 14: backend, {13}, assembler, (device-sycl)
252+
// CHK-UBUACTIONS: 15: assembler, {14}, object, (device-sycl)
253+
// CHK-UBUACTIONS: 16: linker, {2, 15}, spirv, (device-sycl)
254+
// CHK-UBUACTIONS: 17: clang-offload-wrapper, {16}, object, (device-sycl)
255+
// CHK-UBUACTIONS: 18: offload, "host-sycl (x86_64-unknown-linux-gnu)" {12}, "device-sycl (spir64-unknown-linux-sycldevice)" {17}, image
260256

261257
/// ###########################################################################
262258

0 commit comments

Comments
 (0)