diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h index 25f5f83ad7b98..117563ef5c950 100644 --- a/clang/include/clang/Driver/ToolChain.h +++ b/clang/include/clang/Driver/ToolChain.h @@ -720,9 +720,9 @@ class ToolChain { llvm::opt::ArgStringList &CC1Args) const; /// Add options that need to be passed to cc1 for this target. - virtual void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const; + virtual void addClangTargetOptions( + const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const; /// Add options that need to be passed to cc1as for this target. virtual void diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 98936b25ce650..a68d39deda915 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -1421,7 +1421,7 @@ void ToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, } void ToolChain::addClangTargetOptions( - const ArgList &DriverArgs, ArgStringList &CC1Args, + const ArgList &DriverArgs, ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const {} void ToolChain::addClangCC1ASTargetOptions(const ArgList &Args, diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp index e36910f9aaf46..cae6c10efba36 100644 --- a/clang/lib/Driver/ToolChains/AIX.cpp +++ b/clang/lib/Driver/ToolChains/AIX.cpp @@ -558,7 +558,7 @@ static void addTocDataOptions(const llvm::opt::ArgList &Args, void AIX::addClangTargetOptions( const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { + StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { Args.AddLastArg(CC1Args, options::OPT_mignore_xcoff_visibility); Args.AddLastArg(CC1Args, options::OPT_mdefault_visibility_export_mapping_EQ); Args.addOptInFlag(CC1Args, options::OPT_mxcoff_roptr, options::OPT_mno_xcoff_roptr); diff --git a/clang/lib/Driver/ToolChains/AIX.h b/clang/lib/Driver/ToolChains/AIX.h index 6183c9e1b1643..afe0556d68ed4 100644 --- a/clang/lib/Driver/ToolChains/AIX.h +++ b/clang/lib/Driver/ToolChains/AIX.h @@ -85,6 +85,7 @@ class LLVM_LIBRARY_VISIBILITY AIX : public ToolChain { void addClangTargetOptions( const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const override; void addProfileRTLibs(const llvm::opt::ArgList &Args, diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp index b457ee2cde1c3..0f87043cf801e 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -840,9 +840,11 @@ ROCMToolChain::ROCMToolChain(const Driver &D, const llvm::Triple &Triple, } void AMDGPUToolChain::addClangTargetOptions( - const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { + const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + assert(DeviceOffloadingKind == Action::OFK_None && BoundArch.empty() && + "this toolchain is for non-offloading cases"); + // Default to "hidden" visibility, as object level linking will not be // supported for the foreseeable future. // TODO: remove the SPIR-V bypass once it can encode (hidden) visibility. @@ -955,8 +957,8 @@ AMDGPUToolChain::getSystemGPUArchs(const ArgList &Args) const { void ROCMToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { - AMDGPUToolChain::addClangTargetOptions(DriverArgs, CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + AMDGPUToolChain::addClangTargetOptions(DriverArgs, CC1Args, BoundArch, DeviceOffloadingKind); // For the OpenCL case where there is no offload target, accept -nostdlib to diff --git a/clang/lib/Driver/ToolChains/AMDGPU.h b/clang/lib/Driver/ToolChains/AMDGPU.h index 20b9365c91bbf..f8de037d3d555 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.h +++ b/clang/lib/Driver/ToolChains/AMDGPU.h @@ -76,9 +76,11 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUToolChain : public Generic_ELF { TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; @@ -143,6 +145,7 @@ class LLVM_LIBRARY_VISIBILITY ROCMToolChain : public AMDGPUToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; // Returns a list of device library names shared by different languages diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp index 1a30875807d30..1f8b078dc4f44 100644 --- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp @@ -32,8 +32,9 @@ AMDGPUOpenMPToolChain::AMDGPUOpenMPToolChain(const Driver &D, void AMDGPUOpenMPToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { - HostTC.addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + HostTC.addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadingKind); assert(DeviceOffloadingKind == Action::OFK_OpenMP && "Only OpenMP offloading kinds are supported."); diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.h b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.h index cbafdf57fa466..4262640369780 100644 --- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.h +++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.h @@ -39,6 +39,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUOpenMPToolChain final void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const override; CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/AVR.cpp b/clang/lib/Driver/ToolChains/AVR.cpp index 588255dc5a0cd..8064bfe3e3356 100644 --- a/clang/lib/Driver/ToolChains/AVR.cpp +++ b/clang/lib/Driver/ToolChains/AVR.cpp @@ -466,7 +466,7 @@ void AVRToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void AVRToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const { + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { // Reject C/C++ compilation for avr1 devices since they have no SRAM. const Driver &D = getDriver(); std::string CPU = getCPUName(D, DriverArgs, getTriple()); diff --git a/clang/lib/Driver/ToolChains/AVR.h b/clang/lib/Driver/ToolChains/AVR.h index f4d74eb944257..e232fb3c0281c 100644 --- a/clang/lib/Driver/ToolChains/AVR.h +++ b/clang/lib/Driver/ToolChains/AVR.h @@ -29,6 +29,7 @@ class LLVM_LIBRARY_VISIBILITY AVRToolChain : public Generic_ELF { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; std::optional findAVRLibcInstallation() const; diff --git a/clang/lib/Driver/ToolChains/BareMetal.cpp b/clang/lib/Driver/ToolChains/BareMetal.cpp index 3ba592666647a..3c1b76c513faf 100644 --- a/clang/lib/Driver/ToolChains/BareMetal.cpp +++ b/clang/lib/Driver/ToolChains/BareMetal.cpp @@ -352,6 +352,7 @@ void BareMetal::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void BareMetal::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { CC1Args.push_back("-nostdsysteminc"); } diff --git a/clang/lib/Driver/ToolChains/BareMetal.h b/clang/lib/Driver/ToolChains/BareMetal.h index 57bfb73e3399b..0530e51a08f1f 100644 --- a/clang/lib/Driver/ToolChains/BareMetal.h +++ b/clang/lib/Driver/ToolChains/BareMetal.h @@ -68,6 +68,7 @@ class LLVM_LIBRARY_VISIBILITY BareMetal : public Generic_ELF { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, diff --git a/clang/lib/Driver/ToolChains/CSKYToolChain.cpp b/clang/lib/Driver/ToolChains/CSKYToolChain.cpp index c561d7d38da5b..670abb4e75082 100644 --- a/clang/lib/Driver/ToolChains/CSKYToolChain.cpp +++ b/clang/lib/Driver/ToolChains/CSKYToolChain.cpp @@ -75,6 +75,7 @@ CSKYToolChain::GetUnwindLibType(const llvm::opt::ArgList &Args) const { void CSKYToolChain::addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind) const { CC1Args.push_back("-nostdsysteminc"); } diff --git a/clang/lib/Driver/ToolChains/CSKYToolChain.h b/clang/lib/Driver/ToolChains/CSKYToolChain.h index a57324a426416..82f5acb42e98f 100644 --- a/clang/lib/Driver/ToolChains/CSKYToolChain.h +++ b/clang/lib/Driver/ToolChains/CSKYToolChain.h @@ -23,6 +23,7 @@ class LLVM_LIBRARY_VISIBILITY CSKYToolChain : public Generic_ELF { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind) const override; RuntimeLibType GetDefaultRuntimeLibType() const override; UnwindLibType GetUnwindLibType(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index bdffa4fdd7e6b..db50afcb70441 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -5396,7 +5396,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-disable-llvm-passes"); // Render target options. - TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind()); + TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingArch(), + JA.getOffloadingDeviceKind()); // reject options that shouldn't be supported in bitcode // also reject kernel/kext @@ -6164,7 +6165,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, /*ForAS*/ false, /*IsAux*/ true); } - TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind()); + TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingArch(), + JA.getOffloadingDeviceKind()); addMCModel(D, Args, Triple, RelocationModel, CmdArgs); diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index 2064ba4fc1a9c..e402a30f1ee18 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -787,7 +787,8 @@ NVPTXToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, void NVPTXToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const {} + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { +} void NVPTXToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ArgStringList &CC1Args) const { @@ -874,8 +875,9 @@ CudaToolChain::CudaToolChain(const Driver &D, const llvm::Triple &Triple, void CudaToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { - HostTC.addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + HostTC.addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadingKind); StringRef GpuArch = DriverArgs.getLastArgValue(options::OPT_march_EQ); assert((DeviceOffloadingKind == Action::OFK_OpenMP || diff --git a/clang/lib/Driver/ToolChains/Cuda.h b/clang/lib/Driver/ToolChains/Cuda.h index 6193328908828..4844d908bdec2 100644 --- a/clang/lib/Driver/ToolChains/Cuda.h +++ b/clang/lib/Driver/ToolChains/Cuda.h @@ -91,6 +91,7 @@ class LLVM_LIBRARY_VISIBILITY NVPTXToolChain : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, @@ -149,6 +150,7 @@ class LLVM_LIBRARY_VISIBILITY CudaToolChain : public NVPTXToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; llvm::DenormalMode getDefaultDenormalModeForType( diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index 232e6a4e574aa..67f2e8cb7340f 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -1342,9 +1342,10 @@ void DarwinClang::addClangWarningOptions(ArgStringList &CC1Args) const { void DarwinClang::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const { + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { - Darwin::addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadKind); + Darwin::addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadKind); } /// Take a path that speculatively points into Xcode and return the @@ -3432,9 +3433,11 @@ bool Darwin::isSizedDeallocationUnavailable() const { void MachO::addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { - ToolChain::addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadKind); + ToolChain::addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadKind); // On arm64e, we enable all the features required for the Darwin userspace // ABI @@ -3481,9 +3484,10 @@ void MachO::addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, void Darwin::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const { + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { - MachO::addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadKind); + MachO::addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadKind); // When compiling device code (e.g. SPIR-V for HIP), skip host-specific // flags like -faligned-alloc-unavailable and -fno-sized-deallocation diff --git a/clang/lib/Driver/ToolChains/Darwin.h b/clang/lib/Driver/ToolChains/Darwin.h index 6d1da017d3df1..5e433ef72896f 100644 --- a/clang/lib/Driver/ToolChains/Darwin.h +++ b/clang/lib/Driver/ToolChains/Darwin.h @@ -148,6 +148,7 @@ class LLVM_LIBRARY_VISIBILITY MachO : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; private: @@ -593,9 +594,11 @@ class LLVM_LIBRARY_VISIBILITY Darwin : public AppleMachO { /// the c++ standard library of the deployment target we are targeting. bool isSizedDeallocationUnavailable() const; - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; void addClangCC1ASTargetOptions( const llvm::opt::ArgList &Args, @@ -682,6 +685,7 @@ class LLVM_LIBRARY_VISIBILITY DarwinClang : public Darwin { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddLinkARCArgs(const llvm::opt::ArgList &Args, diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index ce503b74295e4..7a7a69e1b13d0 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -532,7 +532,7 @@ void Flang::AddAMDGPUTargetArgs(const ArgList &Args, } const ToolChain &TC = getToolChain(); - TC.addClangTargetOptions(Args, CmdArgs, Action::OffloadKind::OFK_OpenMP); + TC.addClangTargetOptions(Args, CmdArgs, "", Action::OffloadKind::OFK_OpenMP); } void Flang::AddNVPTXTargetArgs(const ArgList &Args, diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp index d4bc589ad4137..309b5e9cf02e1 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.cpp +++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp @@ -367,7 +367,7 @@ ToolChain::CXXStdlibType Fuchsia::GetCXXStdlibType(const ArgList &Args) const { } void Fuchsia::addClangTargetOptions(const ArgList &DriverArgs, - ArgStringList &CC1Args, + ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind) const { if (!DriverArgs.hasFlag(options::OPT_fuse_init_array, options::OPT_fno_use_init_array, true)) diff --git a/clang/lib/Driver/ToolChains/Fuchsia.h b/clang/lib/Driver/ToolChains/Fuchsia.h index eb4c8f560d3c0..f3edf7c9c619c 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.h +++ b/clang/lib/Driver/ToolChains/Fuchsia.h @@ -99,6 +99,7 @@ class LLVM_LIBRARY_VISIBILITY Fuchsia : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp index 53cef4a934f4f..85b2b5eccd44f 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp @@ -3498,6 +3498,7 @@ void Generic_ELF::anchor() {} void Generic_ELF::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { if (!DriverArgs.hasFlag(options::OPT_fuse_init_array, options::OPT_fno_use_init_array, true)) diff --git a/clang/lib/Driver/ToolChains/Gnu.h b/clang/lib/Driver/ToolChains/Gnu.h index 5fe143b4aa035..a4c4de65cd44f 100644 --- a/clang/lib/Driver/ToolChains/Gnu.h +++ b/clang/lib/Driver/ToolChains/Gnu.h @@ -440,9 +440,11 @@ class LLVM_LIBRARY_VISIBILITY Generic_ELF : public Generic_GCC { const llvm::opt::ArgList &Args) : Generic_GCC(D, Triple, Args) {} - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const { return {}; diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp index b7732c9274725..575666bc6e89a 100644 --- a/clang/lib/Driver/ToolChains/HIPAMD.cpp +++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp @@ -236,8 +236,9 @@ HIPAMDToolChain::HIPAMDToolChain(const Driver &D, const llvm::Triple &Triple, void HIPAMDToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { - HostTC.addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + HostTC.addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadingKind); assert(DeviceOffloadingKind == Action::OFK_HIP && "Only HIP offloading kinds are supported for GPUs."); diff --git a/clang/lib/Driver/ToolChains/HIPAMD.h b/clang/lib/Driver/ToolChains/HIPAMD.h index 7c6540fff235a..f52c9b19ff74e 100644 --- a/clang/lib/Driver/ToolChains/HIPAMD.h +++ b/clang/lib/Driver/ToolChains/HIPAMD.h @@ -67,6 +67,7 @@ class LLVM_LIBRARY_VISIBILITY HIPAMDToolChain final : public ROCMToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const override; CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/HIPSPV.cpp b/clang/lib/Driver/ToolChains/HIPSPV.cpp index da601abe4c291..f3718e87a7b5a 100644 --- a/clang/lib/Driver/ToolChains/HIPSPV.cpp +++ b/clang/lib/Driver/ToolChains/HIPSPV.cpp @@ -152,7 +152,7 @@ HIPSPVToolChain::HIPSPVToolChain(const Driver &D, const llvm::Triple &Triple, void HIPSPVToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { if (!HostTC) { assert(DeviceOffloadingKind == Action::OFK_None && @@ -160,7 +160,8 @@ void HIPSPVToolChain::addClangTargetOptions( return; } - HostTC->addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); + HostTC->addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadingKind); assert(DeviceOffloadingKind == Action::OFK_HIP && "Only HIP offloading kinds are supported for GPUs."); diff --git a/clang/lib/Driver/ToolChains/HIPSPV.h b/clang/lib/Driver/ToolChains/HIPSPV.h index 068040ee4f491..7f823d3a8c8ca 100644 --- a/clang/lib/Driver/ToolChains/HIPSPV.h +++ b/clang/lib/Driver/ToolChains/HIPSPV.h @@ -58,6 +58,7 @@ class LLVM_LIBRARY_VISIBILITY HIPSPVToolChain final : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const override; CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp index e0e5ab5c1fde7..3f130fd21d25a 100644 --- a/clang/lib/Driver/ToolChains/Hexagon.cpp +++ b/clang/lib/Driver/ToolChains/Hexagon.cpp @@ -769,6 +769,7 @@ unsigned HexagonToolChain::getOptimizationLevel( void HexagonToolChain::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { bool UseInitArrayDefault = getTriple().isMusl(); diff --git a/clang/lib/Driver/ToolChains/Hexagon.h b/clang/lib/Driver/ToolChains/Hexagon.h index f250344e5cc93..9c4a92ba79e67 100644 --- a/clang/lib/Driver/ToolChains/Hexagon.h +++ b/clang/lib/Driver/ToolChains/Hexagon.h @@ -75,9 +75,11 @@ class LLVM_LIBRARY_VISIBILITY HexagonToolChain : public Linux { const llvm::opt::ArgList &Args); ~HexagonToolChain() override; - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp index 99bcae9bb9598..1f2e636110261 100644 --- a/clang/lib/Driver/ToolChains/Linux.cpp +++ b/clang/lib/Driver/ToolChains/Linux.cpp @@ -552,11 +552,13 @@ static void handlePAuthABI(const Driver &D, const ArgList &DriverArgs, void Linux::addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { llvm::Triple Triple(ComputeEffectiveClangTriple(DriverArgs)); if (Triple.isAArch64() && Triple.getEnvironment() == llvm::Triple::PAuthTest) handlePAuthABI(getDriver(), DriverArgs, CC1Args); - Generic_ELF::addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadKind); + Generic_ELF::addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadKind); } std::string Linux::getDynamicLinker(const ArgList &Args) const { diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h index cc3f3cc21210f..4209e70c10858 100644 --- a/clang/lib/Driver/ToolChains/Linux.h +++ b/clang/lib/Driver/ToolChains/Linux.h @@ -61,6 +61,7 @@ class LLVM_LIBRARY_VISIBILITY Linux : public Generic_ELF { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; std::string getDynamicLinker(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/MSP430.cpp b/clang/lib/Driver/ToolChains/MSP430.cpp index 3cc56bb7e832e..5152512cf28da 100644 --- a/clang/lib/Driver/ToolChains/MSP430.cpp +++ b/clang/lib/Driver/ToolChains/MSP430.cpp @@ -157,6 +157,7 @@ void MSP430ToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void MSP430ToolChain::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { CC1Args.push_back("-nostdsysteminc"); diff --git a/clang/lib/Driver/ToolChains/MSP430.h b/clang/lib/Driver/ToolChains/MSP430.h index a224c63754118..41935e1b5173a 100644 --- a/clang/lib/Driver/ToolChains/MSP430.h +++ b/clang/lib/Driver/ToolChains/MSP430.h @@ -34,6 +34,7 @@ class LLVM_LIBRARY_VISIBILITY MSP430ToolChain : public Generic_ELF { llvm::opt::ArgStringList &CC1Args) const override; void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind) const override; bool isPICDefault() const override { return false; } diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp index 2ab954ff61414..e0d05e2acf07f 100644 --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -1036,7 +1036,7 @@ MSVCToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, } void MSVCToolChain::addClangTargetOptions( - const ArgList &DriverArgs, ArgStringList &CC1Args, + const ArgList &DriverArgs, ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { // MSVC STL kindly allows removing all usages of typeid by defining // _HAS_STATIC_RTTI to 0. Do so, when compiling with -fno-rtti diff --git a/clang/lib/Driver/ToolChains/MSVC.h b/clang/lib/Driver/ToolChains/MSVC.h index c8e49963a472e..637c0d6df108e 100644 --- a/clang/lib/Driver/ToolChains/MSVC.h +++ b/clang/lib/Driver/ToolChains/MSVC.h @@ -125,6 +125,7 @@ class LLVM_LIBRARY_VISIBILITY MSVCToolChain : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; protected: diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp index 7f8aec6482b5f..c4cd3973c7ff9 100644 --- a/clang/lib/Driver/ToolChains/MinGW.cpp +++ b/clang/lib/Driver/ToolChains/MinGW.cpp @@ -745,7 +745,7 @@ void toolchains::MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void toolchains::MinGW::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const { + StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { if (Arg *A = DriverArgs.getLastArg(options::OPT_mguard_EQ)) { StringRef GuardArgs = A->getValue(); if (GuardArgs == "none") { diff --git a/clang/lib/Driver/ToolChains/MinGW.h b/clang/lib/Driver/ToolChains/MinGW.h index 1730da48cd434..c21abd19d7bd8 100644 --- a/clang/lib/Driver/ToolChains/MinGW.h +++ b/clang/lib/Driver/ToolChains/MinGW.h @@ -84,6 +84,7 @@ class LLVM_LIBRARY_VISIBILITY MinGW : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, diff --git a/clang/lib/Driver/ToolChains/NetBSD.cpp b/clang/lib/Driver/ToolChains/NetBSD.cpp index ea722b59853d6..efb2a01e6fadc 100644 --- a/clang/lib/Driver/ToolChains/NetBSD.cpp +++ b/clang/lib/Driver/ToolChains/NetBSD.cpp @@ -559,7 +559,7 @@ SanitizerMask NetBSD::getSupportedSanitizers() const { } void NetBSD::addClangTargetOptions(const ArgList &DriverArgs, - ArgStringList &CC1Args, + ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind) const { const SanitizerArgs &SanArgs = getSanitizerArgs(DriverArgs); if (SanArgs.hasAnySanitizer()) diff --git a/clang/lib/Driver/ToolChains/NetBSD.h b/clang/lib/Driver/ToolChains/NetBSD.h index 96303acaa0099..a9ccdc00713cc 100644 --- a/clang/lib/Driver/ToolChains/NetBSD.h +++ b/clang/lib/Driver/ToolChains/NetBSD.h @@ -78,9 +78,11 @@ class LLVM_LIBRARY_VISIBILITY NetBSD : public Generic_ELF { SanitizerMask getSupportedSanitizers() const override; - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; protected: Tool *buildAssembler() const override; diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index ac2671a8e8078..fc0db44c18962 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.cpp +++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp @@ -576,7 +576,7 @@ SanitizerMask toolchains::PS5CPU::getSupportedSanitizers() const { } void toolchains::PS4PS5Base::addClangTargetOptions( - const ArgList &DriverArgs, ArgStringList &CC1Args, + const ArgList &DriverArgs, ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { // PS4/PS5 do not use init arrays. if (DriverArgs.hasArg(options::OPT_fuse_init_array)) { diff --git a/clang/lib/Driver/ToolChains/PS4CPU.h b/clang/lib/Driver/ToolChains/PS4CPU.h index 456e966c2d400..d566a6cb62d23 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.h +++ b/clang/lib/Driver/ToolChains/PS4CPU.h @@ -110,6 +110,7 @@ class LLVM_LIBRARY_VISIBILITY PS4PS5Base : public Generic_ELF { void addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const override; llvm::DenormalMode getDefaultDenormalModeForType( diff --git a/clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp b/clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp index 4e09d5eac26fd..161f8939929aa 100644 --- a/clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp +++ b/clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp @@ -22,7 +22,7 @@ SPIRVOpenMPToolChain::SPIRVOpenMPToolChain(const Driver &D, void SPIRVOpenMPToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { if (DeviceOffloadingKind != Action::OFK_OpenMP) return; diff --git a/clang/lib/Driver/ToolChains/SPIRVOpenMP.h b/clang/lib/Driver/ToolChains/SPIRVOpenMP.h index 64404e2a28210..75f9f5626eea4 100644 --- a/clang/lib/Driver/ToolChains/SPIRVOpenMP.h +++ b/clang/lib/Driver/ToolChains/SPIRVOpenMP.h @@ -21,6 +21,7 @@ class LLVM_LIBRARY_VISIBILITY SPIRVOpenMPToolChain : public SPIRVToolChain { void addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const override; const ToolChain &HostTC; diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 55a697df5081e..a648adbe5201c 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -104,8 +104,9 @@ SYCLToolChain::SYCLToolChain(const Driver &D, const llvm::Triple &Triple, void SYCLToolChain::addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadingKind) const { - HostTC.addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const { + HostTC.addClangTargetOptions(DriverArgs, CC1Args, BoundArch, + DeviceOffloadingKind); } llvm::opt::DerivedArgList * diff --git a/clang/lib/Driver/ToolChains/SYCL.h b/clang/lib/Driver/ToolChains/SYCL.h index be4ba47cb3d52..ae512723c0cea 100644 --- a/clang/lib/Driver/ToolChains/SYCL.h +++ b/clang/lib/Driver/ToolChains/SYCL.h @@ -32,6 +32,7 @@ class LLVM_LIBRARY_VISIBILITY SYCLToolChain : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; bool useIntegratedAs() const override { return true; } diff --git a/clang/lib/Driver/ToolChains/VEToolchain.cpp b/clang/lib/Driver/ToolChains/VEToolchain.cpp index 78509bcdae0fe..6093d378f0ec2 100644 --- a/clang/lib/Driver/ToolChains/VEToolchain.cpp +++ b/clang/lib/Driver/ToolChains/VEToolchain.cpp @@ -107,6 +107,7 @@ void VEToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void VEToolChain::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { CC1Args.push_back("-nostdsysteminc"); bool UseInitArrayDefault = true; diff --git a/clang/lib/Driver/ToolChains/VEToolchain.h b/clang/lib/Driver/ToolChains/VEToolchain.h index 8b9ccaa7fadaf..2a49f8ed37f01 100644 --- a/clang/lib/Driver/ToolChains/VEToolchain.h +++ b/clang/lib/Driver/ToolChains/VEToolchain.h @@ -37,6 +37,7 @@ class LLVM_LIBRARY_VISIBILITY VEToolChain : public Linux { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, diff --git a/clang/lib/Driver/ToolChains/WebAssembly.cpp b/clang/lib/Driver/ToolChains/WebAssembly.cpp index e532ef0743cc2..dd0df75fd95f8 100644 --- a/clang/lib/Driver/ToolChains/WebAssembly.cpp +++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp @@ -316,6 +316,7 @@ bool WebAssembly::HasNativeLLVMSupport() const { return true; } void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { if (!DriverArgs.hasFlag(options::OPT_fuse_init_array, options::OPT_fno_use_init_array, true)) diff --git a/clang/lib/Driver/ToolChains/WebAssembly.h b/clang/lib/Driver/ToolChains/WebAssembly.h index 76e0ca39bd748..aa6b9ddfc1ffd 100644 --- a/clang/lib/Driver/ToolChains/WebAssembly.h +++ b/clang/lib/Driver/ToolChains/WebAssembly.h @@ -54,6 +54,7 @@ class LLVM_LIBRARY_VISIBILITY WebAssembly final : public ToolChain { void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override; RuntimeLibType GetDefaultRuntimeLibType() const override; CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; diff --git a/clang/lib/Driver/ToolChains/XCore.cpp b/clang/lib/Driver/ToolChains/XCore.cpp index dd26c11affffb..37452eff55baa 100644 --- a/clang/lib/Driver/ToolChains/XCore.cpp +++ b/clang/lib/Driver/ToolChains/XCore.cpp @@ -127,6 +127,7 @@ void XCoreToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, void XCoreToolChain::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args, + StringRef BoundArch, Action::OffloadKind) const { CC1Args.push_back("-nostdsysteminc"); // Set `-fno-use-cxa-atexit` to default. diff --git a/clang/lib/Driver/ToolChains/XCore.h b/clang/lib/Driver/ToolChains/XCore.h index 95359a6e2542f..1f3272530ddad 100644 --- a/clang/lib/Driver/ToolChains/XCore.h +++ b/clang/lib/Driver/ToolChains/XCore.h @@ -66,9 +66,11 @@ class LLVM_LIBRARY_VISIBILITY XCoreToolChain : public ToolChain { void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; - void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, - Action::OffloadKind DeviceOffloadKind) const override; + void + addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; diff --git a/clang/lib/Driver/ToolChains/ZOS.cpp b/clang/lib/Driver/ToolChains/ZOS.cpp index c40f71c170538..fc7b7a6ed186c 100644 --- a/clang/lib/Driver/ToolChains/ZOS.cpp +++ b/clang/lib/Driver/ToolChains/ZOS.cpp @@ -28,7 +28,7 @@ ZOS::ZOS(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) ZOS::~ZOS() {} void ZOS::addClangTargetOptions(const ArgList &DriverArgs, - ArgStringList &CC1Args, + ArgStringList &CC1Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const { // Pass "-faligned-alloc-unavailable" only when the user hasn't manually // enabled or disabled aligned allocations. diff --git a/clang/lib/Driver/ToolChains/ZOS.h b/clang/lib/Driver/ToolChains/ZOS.h index 45204ba0a543c..5d0b2fef79ec8 100644 --- a/clang/lib/Driver/ToolChains/ZOS.h +++ b/clang/lib/Driver/ToolChains/ZOS.h @@ -82,6 +82,7 @@ class LLVM_LIBRARY_VISIBILITY ZOS : public ToolChain { void addClangTargetOptions( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, + llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadingKind) const override; const char *getDefaultLinker() const override { return "/bin/ld"; }