Author: mehdi_amini Date: Fri Oct 7 16:27:26 2016 New Revision: 283605 URL: http://llvm.org/viewvc/llvm-project?rev=283605&view=rev Log: Turn ArchName/BoundArch in Driver from raw pointer to StringRef (NFC)
Modified: cfe/trunk/include/clang/Driver/Action.h cfe/trunk/include/clang/Driver/Compilation.h cfe/trunk/include/clang/Driver/Driver.h cfe/trunk/include/clang/Driver/ToolChain.h cfe/trunk/lib/Driver/Action.cpp cfe/trunk/lib/Driver/Compilation.cpp cfe/trunk/lib/Driver/Driver.cpp cfe/trunk/lib/Driver/MSVCToolChain.cpp cfe/trunk/lib/Driver/ToolChains.cpp cfe/trunk/lib/Driver/ToolChains.h Modified: cfe/trunk/include/clang/Driver/Action.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Action.h?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Action.h (original) +++ cfe/trunk/include/clang/Driver/Action.h Fri Oct 7 16:27:26 2016 @@ -190,12 +190,12 @@ class BindArchAction : public Action { virtual void anchor(); /// The architecture to bind, or 0 if the default architecture /// should be bound. - const char *ArchName; + StringRef ArchName; public: - BindArchAction(Action *Input, const char *ArchName); + BindArchAction(Action *Input, StringRef ArchName); - const char *getArchName() const { return ArchName; } + StringRef getArchName() const { return ArchName; } static bool classof(const Action *A) { return A->getKind() == BindArchClass; Modified: cfe/trunk/include/clang/Driver/Compilation.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Compilation.h?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Compilation.h (original) +++ cfe/trunk/include/clang/Driver/Compilation.h Fri Oct 7 16:27:26 2016 @@ -69,8 +69,9 @@ class Compilation { /// Cache of translated arguments for a particular tool chain and bound /// architecture. - llvm::DenseMap<std::pair<const ToolChain *, const char *>, - llvm::opt::DerivedArgList *> TCArgs; + llvm::DenseMap<std::pair<const ToolChain *, StringRef>, + llvm::opt::DerivedArgList *> + TCArgs; /// Temporary files which should be removed on exit. llvm::opt::ArgStringList TempFiles; @@ -184,7 +185,7 @@ public: /// /// \param BoundArch - The bound architecture name, or 0. const llvm::opt::DerivedArgList &getArgsForToolChain(const ToolChain *TC, - const char *BoundArch); + StringRef BoundArch); /// addTempFile - Add a file to remove on exit, and returns its /// argument. Modified: cfe/trunk/include/clang/Driver/Driver.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Driver.h?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Driver.h (original) +++ cfe/trunk/include/clang/Driver/Driver.h Fri Oct 7 16:27:26 2016 @@ -397,7 +397,7 @@ public: /// jobs for a given (Action, ToolChain, BoundArch) tuple once. InputInfo BuildJobsForAction(Compilation &C, const Action *A, const ToolChain *TC, - const char *BoundArch, bool AtTopLevel, bool MultipleArchs, + StringRef BoundArch, bool AtTopLevel, bool MultipleArchs, const char *LinkingOutput, std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults, @@ -419,7 +419,7 @@ public: /// \param MultipleArchs - Whether multiple -arch options were supplied. /// \param NormalizedTriple - The normalized triple of the relevant target. const char *GetNamedOutputPath(Compilation &C, const JobAction &JA, - const char *BaseInput, const char *BoundArch, + const char *BaseInput, StringRef BoundArch, bool AtTopLevel, bool MultipleArchs, StringRef NormalizedTriple) const; @@ -468,9 +468,8 @@ private: /// jobs specifically for the given action, but will use the cache when /// building jobs for the Action's inputs. InputInfo BuildJobsForActionNoCache( - Compilation &C, const Action *A, const ToolChain *TC, - const char *BoundArch, bool AtTopLevel, bool MultipleArchs, - const char *LinkingOutput, + Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch, + bool AtTopLevel, bool MultipleArchs, const char *LinkingOutput, std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults, bool BuildForOffloadDevice) const; Modified: cfe/trunk/include/clang/Driver/ToolChain.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/ToolChain.h?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/ToolChain.h (original) +++ cfe/trunk/include/clang/Driver/ToolChain.h Fri Oct 7 16:27:26 2016 @@ -195,7 +195,7 @@ public: /// \param BoundArch - The bound architecture name, or 0. virtual llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const { + StringRef BoundArch) const { return nullptr; } Modified: cfe/trunk/lib/Driver/Action.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Action.cpp?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Action.cpp (original) +++ cfe/trunk/lib/Driver/Action.cpp Fri Oct 7 16:27:26 2016 @@ -125,7 +125,7 @@ InputAction::InputAction(const Arg &_Inp void BindArchAction::anchor() {} -BindArchAction::BindArchAction(Action *Input, const char *_ArchName) +BindArchAction::BindArchAction(Action *Input, StringRef _ArchName) : Action(BindArchClass, Input), ArchName(_ArchName) {} void OffloadAction::anchor() {} Modified: cfe/trunk/lib/Driver/Compilation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Compilation.cpp?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Compilation.cpp (original) +++ cfe/trunk/lib/Driver/Compilation.cpp Fri Oct 7 16:27:26 2016 @@ -37,11 +37,9 @@ Compilation::~Compilation() { delete Args; // Free any derived arg lists. - for (llvm::DenseMap<std::pair<const ToolChain*, const char*>, - DerivedArgList*>::iterator it = TCArgs.begin(), - ie = TCArgs.end(); it != ie; ++it) - if (it->second != TranslatedArgs) - delete it->second; + for (auto Arg : TCArgs) + if (Arg.second != TranslatedArgs) + delete Arg.second; // Free redirections of stdout/stderr. if (Redirects) { @@ -53,7 +51,7 @@ Compilation::~Compilation() { } const DerivedArgList &Compilation::getArgsForToolChain(const ToolChain *TC, - const char *BoundArch) { + StringRef BoundArch) { if (!TC) TC = &DefaultToolChain; Modified: cfe/trunk/lib/Driver/Driver.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Driver.cpp (original) +++ cfe/trunk/lib/Driver/Driver.cpp Fri Oct 7 16:27:26 2016 @@ -2307,7 +2307,7 @@ void Driver::BuildJobs(Compilation &C) c } BuildJobsForAction(C, A, &C.getDefaultToolChain(), - /*BoundArch*/ nullptr, + /*BoundArch*/ StringRef(), /*AtTopLevel*/ true, /*MultipleArchs*/ ArchNames.size() > 1, /*LinkingOutput*/ LinkingOutput, CachedResults, @@ -2499,7 +2499,7 @@ static const Tool *selectToolForJob(Comp } InputInfo Driver::BuildJobsForAction( - Compilation &C, const Action *A, const ToolChain *TC, const char *BoundArch, + Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch, bool AtTopLevel, bool MultipleArchs, const char *LinkingOutput, std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults, bool BuildForOffloadDevice) const { @@ -2507,7 +2507,7 @@ InputInfo Driver::BuildJobsForAction( // for example, armv7 and armv7s both map to the same triple -- so we need // both in our map. std::string TriplePlusArch = TC->getTriple().normalize(); - if (BoundArch) { + if (!BoundArch.empty()) { TriplePlusArch += "-"; TriplePlusArch += BoundArch; } @@ -2524,7 +2524,7 @@ InputInfo Driver::BuildJobsForAction( } InputInfo Driver::BuildJobsForActionNoCache( - Compilation &C, const Action *A, const ToolChain *TC, const char *BoundArch, + Compilation &C, const Action *A, const ToolChain *TC, StringRef BoundArch, bool AtTopLevel, bool MultipleArchs, const char *LinkingOutput, std::map<std::pair<const Action *, std::string>, InputInfo> &CachedResults, bool BuildForOffloadDevice) const { @@ -2601,9 +2601,9 @@ InputInfo Driver::BuildJobsForActionNoCa if (const BindArchAction *BAA = dyn_cast<BindArchAction>(A)) { const ToolChain *TC; - const char *ArchName = BAA->getArchName(); + StringRef ArchName = BAA->getArchName(); - if (ArchName) + if (!ArchName.empty()) TC = &getToolChain(C.getArgs(), computeTargetTriple(*this, DefaultTargetTriple, C.getArgs(), ArchName)); @@ -2745,7 +2745,7 @@ static const char *MakeCLOutputFilename( const char *Driver::GetNamedOutputPath(Compilation &C, const JobAction &JA, const char *BaseInput, - const char *BoundArch, bool AtTopLevel, + StringRef BoundArch, bool AtTopLevel, bool MultipleArchs, StringRef NormalizedTriple) const { llvm::PrettyStackTraceString CrashInfo("Computing output path"); @@ -2831,7 +2831,7 @@ const char *Driver::GetNamedOutputPath(C // clang-cl uses BaseName for the executable name. NamedOutput = MakeCLOutputFilename(C.getArgs(), "", BaseName, types::TY_Image); - } else if (MultipleArchs && BoundArch) { + } else if (MultipleArchs && !BoundArch.empty()) { SmallString<128> Output(getDefaultImageName()); Output += JA.getOffloadingFileNamePrefix(NormalizedTriple); Output += "-"; @@ -2851,7 +2851,7 @@ const char *Driver::GetNamedOutputPath(C End = BaseName.rfind('.'); SmallString<128> Suffixed(BaseName.substr(0, End)); Suffixed += JA.getOffloadingFileNamePrefix(NormalizedTriple); - if (MultipleArchs && BoundArch) { + if (MultipleArchs && !BoundArch.empty()) { Suffixed += "-"; Suffixed.append(BoundArch); } Modified: cfe/trunk/lib/Driver/MSVCToolChain.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/MSVCToolChain.cpp?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/MSVCToolChain.cpp (original) +++ cfe/trunk/lib/Driver/MSVCToolChain.cpp Fri Oct 7 16:27:26 2016 @@ -811,7 +811,7 @@ static void TranslateDArg(Arg *A, llvm:: llvm::opt::DerivedArgList * MSVCToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const { + StringRef BoundArch) const { DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs()); const OptTable &Opts = getDriver().getOpts(); Modified: cfe/trunk/lib/Driver/ToolChains.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains.cpp Fri Oct 7 16:27:26 2016 @@ -801,7 +801,7 @@ void DarwinClang::AddCCKextLibArgs(const } DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args, - const char *BoundArch) const { + StringRef BoundArch) const { DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs()); const OptTable &Opts = getDriver().getOpts(); @@ -819,7 +819,7 @@ DerivedArgList *MachO::TranslateArgs(con llvm::Triple::ArchType XarchArch = tools::darwin::getArchTypeForMachOArchName(A->getValue(0)); if (!(XarchArch == getArch() || - (BoundArch && + (!BoundArch.empty() && XarchArch == tools::darwin::getArchTypeForMachOArchName(BoundArch)))) continue; @@ -935,7 +935,7 @@ DerivedArgList *MachO::TranslateArgs(con // Add the arch options based on the particular spelling of -arch, to match // how the driver driver works. - if (BoundArch) { + if (!BoundArch.empty()) { StringRef Name = BoundArch; const Option MCpu = Opts.getOption(options::OPT_mcpu_EQ); const Option MArch = Opts.getOption(options::OPT_march_EQ); @@ -1031,13 +1031,13 @@ void MachO::AddLinkRuntimeLibArgs(const } DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args, - const char *BoundArch) const { + StringRef BoundArch) const { // First get the generic Apple args, before moving onto Darwin-specific ones. DerivedArgList *DAL = MachO::TranslateArgs(Args, BoundArch); const OptTable &Opts = getDriver().getOpts(); // If no architecture is bound, none of the translations here are relevant. - if (!BoundArch) + if (BoundArch.empty()) return DAL; // Add an explicit version min argument for the deployment target. We do this @@ -4948,14 +4948,14 @@ void CudaToolChain::AddCudaIncludeArgs(c llvm::opt::DerivedArgList * CudaToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const { + StringRef BoundArch) const { DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs()); const OptTable &Opts = getDriver().getOpts(); for (Arg *A : Args) { if (A->getOption().matches(options::OPT_Xarch__)) { // Skip this argument unless the architecture matches BoundArch - if (!BoundArch || A->getValue(0) != StringRef(BoundArch)) + if (BoundArch.empty() || A->getValue(0) != BoundArch) continue; unsigned Index = Args.getBaseArgs().MakeIndex(A->getValue(1)); @@ -4986,7 +4986,7 @@ CudaToolChain::TranslateArgs(const llvm: DAL->append(A); } - if (BoundArch) { + if (!BoundArch.empty()) { DAL->eraseArg(options::OPT_march_EQ); DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_march_EQ), BoundArch); } Modified: cfe/trunk/lib/Driver/ToolChains.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.h?rev=283605&r1=283604&r2=283605&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains.h (original) +++ cfe/trunk/lib/Driver/ToolChains.h Fri Oct 7 16:27:26 2016 @@ -318,7 +318,7 @@ public: llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const override; + StringRef BoundArch) const override; bool IsBlocksDefault() const override { // Always allow blocks on Apple; users interested in versioning are @@ -523,7 +523,7 @@ public: llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const override; + StringRef BoundArch) const override; CXXStdlibType GetDefaultCXXStdlibType() const override; ObjCRuntime getDefaultObjCRuntime(bool isNonFragile) const override; @@ -856,7 +856,7 @@ public: llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const override; + StringRef BoundArch) const override; void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; @@ -1062,7 +1062,7 @@ public: llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList &Args, - const char *BoundArch) const override; + StringRef BoundArch) const override; bool IsIntegratedAssemblerDefault() const override; bool IsUnwindTablesDefault() const override; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits