Skip to content

Commit bac802b

Browse files
committed
Merge remote-tracking branch 'intel/sycl' into sema_availability_revert_pulldown
2 parents 9048252 + 51d92a3 commit bac802b

File tree

229 files changed

+5275
-1315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

229 files changed

+5275
-1315
lines changed

.github/workflows/sycl-linux-build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ jobs:
169169
--cmake-opt=-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
170170
--cmake-opt="-DLLVM_INSTALL_UTILS=ON" \
171171
--cmake-opt="-DNATIVECPU_USE_OCK=Off" \
172-
--cmake-opt="-DSYCL_PI_TESTS=OFF" \
173172
--cmake-opt="-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=SPIRV"
174173
- name: Compile
175174
id: build

.github/workflows/sycl-linux-run-tests.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,11 @@ jobs:
284284
echo "opts=$CMAKE_EXTRA_ARGS" >> $GITHUB_OUTPUT
285285
else
286286
if [ "${{ contains(inputs.target_devices, 'ext_oneapi_hip') }}" == "true" ]; then
287-
echo 'opts=-DHIP_PLATFORM="AMD" -DAMD_ARCH="gfx1031"' >> $GITHUB_OUTPUT
287+
if [ "${{ runner.name }}" == "cp-amd-runner" ]; then
288+
echo 'opts=-DHIP_PLATFORM="AMD" -DAMD_ARCH="gfx1030"' >> $GITHUB_OUTPUT
289+
else
290+
echo 'opts=-DHIP_PLATFORM="AMD" -DAMD_ARCH="gfx1031"' >> $GITHUB_OUTPUT
291+
fi
288292
else
289293
echo 'opts=' >> $GITHUB_OUTPUT
290294
fi

.github/workflows/sycl-macos-build-and-test.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ jobs:
5252
--ci-defaults $ARGS \
5353
--cmake-opt=-DCMAKE_C_COMPILER_LAUNCHER=ccache \
5454
--cmake-opt=-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
55-
--cmake-opt="-DLLVM_INSTALL_UTILS=ON" \
56-
--cmake-opt="-DSYCL_PI_TESTS=OFF"
55+
--cmake-opt="-DLLVM_INSTALL_UTILS=ON"
5756
- name: Compile
5857
run: cmake --build $GITHUB_WORKSPACE/build --target deploy-sycl-toolchain

clang/include/clang/Basic/LangOptions.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ LANGOPT(SYCLExperimentalRangeRounding, 1, 0, "Use experimental parallel for rang
326326
LANGOPT(SYCLEnableIntHeaderDiags, 1, 0, "Enable diagnostics that require the "
327327
"SYCL integration header")
328328
LANGOPT(SYCLIsNativeCPU , 1, 0, "Generate code for SYCL Native CPU")
329+
LANGOPT(SYCLRTCMode, 1, 0, "Compile in RTC mode")
329330

330331
LANGOPT(HIPUseNewLaunchAPI, 1, 0, "Use new kernel launching API for HIP")
331332
LANGOPT(OffloadUniformBlock, 1, 0, "Assume that kernels are launched with uniform block sizes (default true for CUDA/HIP and false otherwise)")

clang/include/clang/Driver/Options.td

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6877,6 +6877,11 @@ defm sycl_esimd_force_stateless_mem : BoolFOption<"sycl-esimd-force-stateless-me
68776877
NegFlag<SetFalse, [], [ClangOption, CLOption], "Do not enforce using "
68786878
"stateless memory accesses.">,
68796879
BothFlags<[], [ClangOption, CLOption, CC1Option], "">>;
6880+
defm sycl_rtc_mode: BoolFOption<"sycl-rtc-mode",
6881+
LangOpts<"SYCLRTCMode">, DefaultFalse,
6882+
PosFlag<SetTrue, [], [ClangOption], "Enable">,
6883+
NegFlag<SetFalse, [], [ClangOption], "Disable">,
6884+
BothFlags<[HelpHidden], [ClangOption, CC1Option], " RTC mode in SYCL.">>;
68806885
// TODO: Remove this option once ESIMD headers are updated to
68816886
// guard vectors to be device only.
68826887
def fno_sycl_esimd_build_host_code : Flag<["-"], "fno-sycl-esimd-build-host-code">,

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5589,6 +5589,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
55895589
Args.AddLastArg(CmdArgs, options::OPT_fsycl_decompose_functor,
55905590
options::OPT_fno_sycl_decompose_functor);
55915591

5592+
Args.AddLastArg(CmdArgs, options::OPT_fsycl_rtc_mode,
5593+
options::OPT_fno_sycl_rtc_mode);
5594+
55925595
// Forward -fsycl-instrument-device-code option to cc1. This option will
55935596
// only be used for SPIR/SPIR-V based targets.
55945597
if (Triple.isSPIROrSPIRV())
@@ -10350,33 +10353,48 @@ void OffloadWrapper::ConstructJob(Compilation &C, const JobAction &JA,
1035010353
assert(JA.getInputs().size() == Inputs.size() &&
1035110354
"Not have inputs for all dependence actions??");
1035210355

10353-
// For FPGA, we wrap the host objects before archiving them when using
10354-
// -fsycl-link. This allows for better extraction control from the
10355-
// archive when we need the host objects for subsequent compilations.
1035610356
if (OffloadingKind == Action::OFK_None &&
10357-
C.getArgs().hasArg(options::OPT_fintelfpga) &&
1035810357
C.getArgs().hasArg(options::OPT_fsycl_link_EQ)) {
1035910358

10360-
// Add offload targets and inputs.
10361-
CmdArgs.push_back(C.getArgs().MakeArgString(
10362-
Twine("-kind=") + Action::GetOffloadKindName(OffloadingKind)));
10363-
CmdArgs.push_back(
10364-
TCArgs.MakeArgString(Twine("-target=") + Triple.getTriple()));
10359+
// For FPGA, we wrap the host objects before archiving them when using
10360+
// -fsycl-link. This allows for better extraction control from the
10361+
// archive when we need the host objects for subsequent compilations.
10362+
if (C.getArgs().hasArg(options::OPT_fintelfpga)) {
1036510363

10366-
if (Inputs[0].getType() == types::TY_Tempfiletable ||
10367-
Inputs[0].getType() == types::TY_Tempfilelist)
10368-
// Input files are passed via the batch job file table.
10369-
CmdArgs.push_back(C.getArgs().MakeArgString("-batch"));
10364+
// Add offload targets and inputs.
10365+
CmdArgs.push_back(C.getArgs().MakeArgString(
10366+
Twine("-kind=") + Action::GetOffloadKindName(OffloadingKind)));
10367+
CmdArgs.push_back(
10368+
TCArgs.MakeArgString(Twine("-target=") + Triple.getTriple()));
1037010369

10371-
// Add input.
10372-
assert(Inputs[0].isFilename() && "Invalid input.");
10373-
CmdArgs.push_back(TCArgs.MakeArgString(Inputs[0].getFilename()));
10370+
if (Inputs[0].getType() == types::TY_Tempfiletable ||
10371+
Inputs[0].getType() == types::TY_Tempfilelist)
10372+
// Input files are passed via the batch job file table.
10373+
CmdArgs.push_back(C.getArgs().MakeArgString("-batch"));
1037410374

10375-
C.addCommand(std::make_unique<Command>(
10376-
JA, *this, ResponseFileSupport::None(),
10377-
TCArgs.MakeArgString(getToolChain().GetProgramPath(getShortName())),
10378-
CmdArgs, Inputs));
10379-
return;
10375+
// Add input.
10376+
assert(Inputs[0].isFilename() && "Invalid input.");
10377+
CmdArgs.push_back(TCArgs.MakeArgString(Inputs[0].getFilename()));
10378+
10379+
C.addCommand(std::make_unique<Command>(
10380+
JA, *this, ResponseFileSupport::None(),
10381+
TCArgs.MakeArgString(getToolChain().GetProgramPath(getShortName())),
10382+
CmdArgs, Inputs));
10383+
return;
10384+
} else {
10385+
// When compiling and linking separately, we need to propagate the
10386+
// compression related CLI options to offload-wrapper. Don't propagate
10387+
// these options when wrapping objects for FPGA.
10388+
if (C.getInputArgs().getLastArg(options::OPT_offload_compress)) {
10389+
CmdArgs.push_back(
10390+
C.getArgs().MakeArgString(Twine("-offload-compress")));
10391+
// -offload-compression-level=<>
10392+
if (Arg *A = C.getInputArgs().getLastArg(
10393+
options::OPT_offload_compression_level_EQ))
10394+
CmdArgs.push_back(C.getArgs().MakeArgString(
10395+
Twine("-offload-compression-level=") + A->getValue()));
10396+
}
10397+
}
1038010398
}
1038110399

1038210400
// Add offload targets and inputs.

0 commit comments

Comments
 (0)