summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.h
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2016-07-18 19:56:38 +0000
committerVedant Kumar <vsk@apple.com>2016-07-18 19:56:38 +0000
commitbf51e703cfaf006f3f162d837435de4815e9007e (patch)
tree7a91e21395551a31c536117b0b5ce989d0437722 /clang/lib/Driver/ToolChains.h
parentf2030b931caca4c89e680f125a0d8aa2e6593551 (diff)
downloadbcm5719-llvm-bf51e703cfaf006f3f162d837435de4815e9007e.tar.gz
bcm5719-llvm-bf51e703cfaf006f3f162d837435de4815e9007e.zip
[Driver] Compute effective target triples once per job (NFCI)
Compute an effective target triple exactly once in ConstructJob(), and then simply pass around references to it. This eliminates wasteful re-computation of effective triples (e.g in getARMFloatABI()). Differential Revision: https://reviews.llvm.org/D22290 llvm-svn: 275895
Diffstat (limited to 'clang/lib/Driver/ToolChains.h')
-rw-r--r--clang/lib/Driver/ToolChains.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h
index da6f53aeb12..25dae72ca86 100644
--- a/clang/lib/Driver/ToolChains.h
+++ b/clang/lib/Driver/ToolChains.h
@@ -279,7 +279,8 @@ public:
llvm::opt::ArgStringList &CmdArgs) const {}
/// Add the linker arguments to link the compiler runtime library.
- virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,
+ virtual void AddLinkRuntimeLibArgs(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const;
virtual void addStartObjectFileArgs(const llvm::opt::ArgList &Args,
@@ -303,7 +304,8 @@ public:
/// Add any profiling runtime libraries that are needed. This is essentially a
/// MachO specific version of addProfileRT in Tools.cpp.
- void addProfileRTLibs(const llvm::opt::ArgList &Args,
+ void addProfileRTLibs(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override {
// There aren't any profiling libs for embedded targets currently.
}
@@ -417,7 +419,8 @@ public:
!isTargetWatchOS());
}
- void addProfileRTLibs(const llvm::opt::ArgList &Args,
+ void addProfileRTLibs(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override;
protected:
@@ -572,7 +575,8 @@ public:
/// @name Apple ToolChain Implementation
/// {
- void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,
+ void AddLinkRuntimeLibArgs(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override;
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
@@ -838,7 +842,8 @@ public:
llvm::opt::ArgStringList &CC1Args) const override;
bool isPIEDefault() const override;
SanitizerMask getSupportedSanitizers() const override;
- void addProfileRTLibs(const llvm::opt::ArgList &Args,
+ void addProfileRTLibs(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override;
virtual std::string computeSysRoot() const;
@@ -902,7 +907,8 @@ public:
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override;
- std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component,
+ std::string getCompilerRT(const llvm::Triple &EffectiveTriple,
+ const llvm::opt::ArgList &Args, StringRef Component,
bool Shared = false) const override;
std::string computeSysRoot() const override;
OpenPOWER on IntegriCloud