diff options
Diffstat (limited to 'lib/Driver/ToolChains/AMDGPU.h')
| -rw-r--r-- | lib/Driver/ToolChains/AMDGPU.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/Driver/ToolChains/AMDGPU.h b/lib/Driver/ToolChains/AMDGPU.h index 9af1e96489ebd..36114d0dabc43 100644 --- a/lib/Driver/ToolChains/AMDGPU.h +++ b/lib/Driver/ToolChains/AMDGPU.h @@ -11,13 +11,14 @@ #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPU_H #include "Gnu.h" +#include "clang/Driver/Options.h" #include "clang/Driver/Tool.h" #include "clang/Driver/ToolChain.h" +#include <map> namespace clang { namespace driver { namespace tools { - namespace amdgpu { class LLVM_LIBRARY_VISIBILITY Linker : public GnuTool { @@ -31,20 +32,35 @@ public: const char *LinkingOutput) const override; }; +void getAMDGPUTargetFeatures(const Driver &D, const llvm::opt::ArgList &Args, + std::vector<StringRef> &Features); + } // end namespace amdgpu } // end namespace tools namespace toolchains { class LLVM_LIBRARY_VISIBILITY AMDGPUToolChain : public Generic_ELF { + +private: + const std::map<options::ID, const StringRef> OptionsDefault; + protected: Tool *buildLinker() const override; + const StringRef getOptionDefault(options::ID OptID) const { + auto opt = OptionsDefault.find(OptID); + assert(opt != OptionsDefault.end() && "No Default for Option"); + return opt->second; + } public: AMDGPUToolChain(const Driver &D, const llvm::Triple &Triple, - const llvm::opt::ArgList &Args); + const llvm::opt::ArgList &Args); unsigned GetDefaultDwarfVersion() const override { return 2; } bool IsIntegratedAssemblerDefault() const override { return true; } + llvm::opt::DerivedArgList * + TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch, + Action::OffloadKind DeviceOffloadKind) const override; }; } // end namespace toolchains |
