[SYCL] Keep Clang driver options out of AOT and JIT backends (#23281)
Route explicit and implied SYCL backend options through tool-specific
prefixes so generic Clang flags, including LTO settings, do not reach
ocloc, opencl-aot or the JIT runtime. Retain separate JIT compile and
link options and silently discard unmapped options in the linker
wrapper. Share the AOT and JIT prefix protocol in
llvm/Frontend/Offloading.
Scope CUDA/ROCm compiler paths to their device triples when SYCL is
present and deduplicate paths emitted by toolchains sharing a triple.
Separate SYCL arguments from other offload kinds in mixed device groups,
reusing the filtered arguments for non-SYCL-only groups. For non-SYCL
images, honor kind selectors, preserve option values containing colons,
and match normalized target triples; short architecture selectors remain
SYCL-only.
Update driver and wrapper coverage for mapped options, link-only implied
settings, split mode, LTO and mixed offload kinds, including a negative
check for OpenMP options in the SYCL invocation. Pin the host target and
sysroot in the new driver tests. Clarify that ocloc concatenates
repeated -options values. Leave the unrelated split-mode help text
unchanged.
JIRA: CMPLRLLVM-78439
---------
Co-authored-by: Michael Toguchi <michael.d.toguchi@intel.com>