diff options
| author | Roman Divacky <rdivacky@freebsd.org> | 2013-12-06 18:32:18 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@freebsd.org> | 2013-12-06 18:32:18 +0000 |
| commit | 326d998cfa2850f523286789af2fb58480b3fc22 (patch) | |
| tree | de22c8d6df5367c0aa0f4bbef57c65c9a98cd5f5 | |
| parent | 67fe87fc5e57e7d93a3d1891adf81a3e18bfd86c (diff) | |
| download | bcm5719-llvm-326d998cfa2850f523286789af2fb58480b3fc22.tar.gz bcm5719-llvm-326d998cfa2850f523286789af2fb58480b3fc22.zip | |
Move the body of GCCInstallationDetector ctor into an init() function
and call it from its only user. The linux toolchain. This saves quite
a lot of directory searching on other platforms.
llvm-svn: 196590
| -rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 11 | ||||
| -rw-r--r-- | clang/lib/Driver/ToolChains.h | 3 |
2 files changed, 8 insertions, 6 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index bfc2acabe40..aa8cc566297 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -1008,7 +1008,7 @@ static StringRef getGCCToolchainDir(const ArgList &Args) { return GCC_INSTALL_PREFIX; } -/// \brief Construct a GCCInstallationDetector from the driver. +/// \brief Initialize a GCCInstallationDetector from the driver. /// /// This performs all of the autodetection and sets up the various paths. /// Once constructed, a GCCInstallationDetector is essentially immutable. @@ -1017,9 +1017,9 @@ static StringRef getGCCToolchainDir(const ArgList &Args) { /// should instead pull the target out of the driver. This is currently /// necessary because the driver doesn't store the final version of the target /// triple. -Generic_GCC::GCCInstallationDetector::GCCInstallationDetector( - const Driver &D, const llvm::Triple &TargetTriple, const ArgList &Args) - : IsValid(false) { +void +Generic_GCC::GCCInstallationDetector::init( + const Driver &D, const llvm::Triple &TargetTriple, const ArgList &Args) { llvm::Triple BiarchVariantTriple = TargetTriple.isArch32Bit() ? TargetTriple.get64BitArchVariant() : TargetTriple.get32BitArchVariant(); @@ -1556,7 +1556,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple& Triple, const ArgList &Args) - : ToolChain(D, Triple, Args), GCCInstallation(getDriver(), Triple, Args) { + : ToolChain(D, Triple, Args), GCCInstallation() { getProgramPaths().push_back(getDriver().getInstalledDir()); if (getDriver().getInstalledDir() != getDriver().Dir) getProgramPaths().push_back(getDriver().Dir); @@ -2353,6 +2353,7 @@ static StringRef getMultilibDir(const llvm::Triple &Triple, Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : Generic_ELF(D, Triple, Args) { + GCCInstallation.init(D, Triple, Args); llvm::Triple::ArchType Arch = Triple.getArch(); std::string SysRoot = computeSysRoot(); diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h index 0368458b409..7c4d59fe9ab 100644 --- a/clang/lib/Driver/ToolChains.h +++ b/clang/lib/Driver/ToolChains.h @@ -91,7 +91,8 @@ protected: std::set<std::string> CandidateGCCInstallPaths; public: - GCCInstallationDetector(const Driver &D, const llvm::Triple &TargetTriple, + GCCInstallationDetector() : IsValid(false) {} + void init(const Driver &D, const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args); /// \brief Check whether we detected a valid GCC install. |

