diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2015-06-21 14:00:56 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2015-06-21 14:00:56 +0000 |
| commit | 2e645aa5697838f16ec570eb07c2bee7e13d0e0b (patch) | |
| tree | a764184c2fc9486979b074250b013a0937ee64e5 /lib/Driver/ToolChains.h | |
| parent | 798321d8eb5630cd4a8f490a4f25e32ef195fb07 (diff) | |
Notes
Diffstat (limited to 'lib/Driver/ToolChains.h')
| -rw-r--r-- | lib/Driver/ToolChains.h | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index 0b7073f2ba0b..a48bb5fa5948 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -316,9 +316,6 @@ public: /// Darwin - The base Darwin tool chain. class LLVM_LIBRARY_VISIBILITY Darwin : public MachO { public: - /// The host version. - unsigned DarwinVersion[3]; - /// Whether the information on the target has been initialized. // // FIXME: This should be eliminated. What we want to do is make this part of @@ -338,15 +335,6 @@ public: mutable VersionTuple TargetVersion; private: - /// The default macosx-version-min of this tool chain; empty until - /// initialized. - std::string MacosxVersionMin; - - /// The default ios-version-min of this tool chain; empty until - /// initialized. - std::string iOSVersionMin; - -private: void AddDeploymentTarget(llvm::opt::DerivedArgList &Args) const; public: @@ -412,6 +400,7 @@ protected: } bool isTargetMacOS() const { + assert(TargetInitialized && "Target not initialized!"); return TargetPlatform == MacOS; } @@ -474,6 +463,8 @@ public: void CheckObjCARC() const override; bool UseSjLjExceptions() const override; + + SanitizerMask getSupportedSanitizers() const override; }; /// DarwinClang - The Darwin toolchain used by Clang. @@ -616,6 +607,7 @@ public: bool UseSjLjExceptions() const override; bool isPIEDefault() const override; + SanitizerMask getSupportedSanitizers() const override; protected: Tool *buildAssembler() const override; Tool *buildLinker() const override; @@ -679,6 +671,7 @@ public: AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; bool isPIEDefault() const override; + SanitizerMask getSupportedSanitizers() const override; std::string Linker; std::vector<std::string> ExtraOpts; @@ -809,6 +802,7 @@ public: std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList &Args, types::ID InputType) const override; + SanitizerMask getSupportedSanitizers() const override; protected: void AddSystemIncludeWithSubfolder(const llvm::opt::ArgList &DriverArgs, @@ -872,6 +866,27 @@ public: llvm::opt::ArgStringList &CmdArgs) const override; }; +/// SHAVEToolChain - A tool chain using the compiler installed by the the +// Movidius SDK into MV_TOOLS_DIR (which we assume will be copied to llvm's +// installation dir) to perform all subcommands. +class LLVM_LIBRARY_VISIBILITY SHAVEToolChain : public Generic_GCC { +public: + SHAVEToolChain(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); + ~SHAVEToolChain() override; + + virtual Tool *SelectTool(const JobAction &JA) const override; + +protected: + Tool *getTool(Action::ActionClass AC) const override; + Tool *buildAssembler() const override; + Tool *buildLinker() const override; + +private: + mutable std::unique_ptr<Tool> Compiler; + mutable std::unique_ptr<Tool> Assembler; +}; + } // end namespace toolchains } // end namespace driver } // end namespace clang |
