diff options
author | Nico Weber <nicolasweber@gmx.de> | 2016-02-23 19:30:43 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2016-02-23 19:30:43 +0000 |
commit | 5a459f8249e02bfc09aff0c0e8d33a9e1866dd8c (patch) | |
tree | e97a6130a9d7b0f80357b229e556547c5152f1f6 | |
parent | 4594606c00ae149d2c85a2d53d2489ac1a564835 (diff) | |
download | llvm-5a459f8249e02bfc09aff0c0e8d33a9e1866dd8c.zip llvm-5a459f8249e02bfc09aff0c0e8d33a9e1866dd8c.tar.gz llvm-5a459f8249e02bfc09aff0c0e8d33a9e1866dd8c.tar.bz2 |
Rename Action::begin() to Action::input_begin().
Also introduce inputs() that reutnrs an llvm::iterator_range.
Iterating over A->inputs() is much less mysterious than
iterating over *A. No intended behavior change.
llvm-svn: 261674
-rw-r--r-- | clang/include/clang/Driver/Action.h | 18 | ||||
-rw-r--r-- | clang/lib/Driver/Compilation.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 31 | ||||
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Frontend/CreateInvocationFromCommandLine.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Tooling/CompilationDatabase.cpp | 5 |
6 files changed, 35 insertions, 29 deletions
diff --git a/clang/include/clang/Driver/Action.h b/clang/include/clang/Driver/Action.h index 2cf53bc..8c3894b 100644 --- a/clang/include/clang/Driver/Action.h +++ b/clang/include/clang/Driver/Action.h @@ -41,8 +41,10 @@ namespace driver { class Action { public: typedef ActionList::size_type size_type; - typedef ActionList::iterator iterator; - typedef ActionList::const_iterator const_iterator; + typedef ActionList::iterator input_iterator; + typedef ActionList::const_iterator input_const_iterator; + typedef llvm::iterator_range<input_iterator> input_range; + typedef llvm::iterator_range<input_const_iterator> input_const_range; enum ActionClass { InputClass = 0, @@ -98,10 +100,14 @@ public: size_type size() const { return Inputs.size(); } - iterator begin() { return Inputs.begin(); } - iterator end() { return Inputs.end(); } - const_iterator begin() const { return Inputs.begin(); } - const_iterator end() const { return Inputs.end(); } + input_iterator input_begin() { return Inputs.begin(); } + input_iterator input_end() { return Inputs.end(); } + input_range inputs() { return input_range(input_begin(), input_end()); } + input_const_iterator input_begin() const { return Inputs.begin(); } + input_const_iterator input_end() const { return Inputs.end(); } + input_const_range inputs() const { + return input_const_range(input_begin(), input_end()); + } }; class InputAction : public Action { diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 1c2eecd..71bccfa 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -176,8 +176,8 @@ static bool ActionFailed(const Action *A, if (A == &(CI->second->getSource())) return true; - for (Action::const_iterator AI = A->begin(), AE = A->end(); AI != AE; ++AI) - if (ActionFailed(*AI, FailingCommands)) + for (const Action *AI : A->inputs()) + if (ActionFailed(AI, FailingCommands)) return true; return false; diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 766c56d..6a85dab 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -948,15 +948,15 @@ static unsigned PrintActions1(const Compilation &C, Action *A, os << "\"" << IA->getInputArg().getValue() << "\""; } else if (BindArchAction *BIA = dyn_cast<BindArchAction>(A)) { os << '"' << BIA->getArchName() << '"' << ", {" - << PrintActions1(C, *BIA->begin(), Ids) << "}"; + << PrintActions1(C, *BIA->input_begin(), Ids) << "}"; } else if (CudaDeviceAction *CDA = dyn_cast<CudaDeviceAction>(A)) { os << '"' << (CDA->getGpuArchName() ? CDA->getGpuArchName() : "(multiple archs)") - << '"' << ", {" << PrintActions1(C, *CDA->begin(), Ids) << "}"; + << '"' << ", {" << PrintActions1(C, *CDA->input_begin(), Ids) << "}"; } else { const ActionList *AL; if (CudaHostAction *CHA = dyn_cast<CudaHostAction>(A)) { - os << "{" << PrintActions1(C, *CHA->begin(), Ids) << "}" + os << "{" << PrintActions1(C, *CHA->input_begin(), Ids) << "}" << ", gpu binaries "; AL = &CHA->getDeviceActions(); } else @@ -996,7 +996,7 @@ static bool ContainsCompileOrAssembleAction(const Action *A) { isa<AssembleJobAction>(A)) return true; - for (const Action *Input : *A) + for (const Action *Input : A->inputs()) if (ContainsCompileOrAssembleAction(Input)) return true; @@ -1747,8 +1747,8 @@ static const Tool *selectToolForJob(Compilation &C, bool SaveTemps, // Compile job may be wrapped in CudaHostAction, extract it if // that's the case and update CollapsedCHA if we combine phases. CudaHostAction *CHA = dyn_cast<CudaHostAction>(*BackendInputs->begin()); - JobAction *CompileJA = - cast<CompileJobAction>(CHA ? *CHA->begin() : *BackendInputs->begin()); + JobAction *CompileJA = cast<CompileJobAction>( + CHA ? *CHA->input_begin() : *BackendInputs->begin()); assert(CompileJA && "Backend job is not preceeded by compile job."); const Tool *Compiler = TC->SelectTool(*CompileJA); if (!Compiler) @@ -1770,7 +1770,7 @@ static const Tool *selectToolForJob(Compilation &C, bool SaveTemps, // that's the case and update CollapsedCHA if we combine phases. CudaHostAction *CHA = dyn_cast<CudaHostAction>(*Inputs->begin()); JobAction *CompileJA = - cast<CompileJobAction>(CHA ? *CHA->begin() : *Inputs->begin()); + cast<CompileJobAction>(CHA ? *CHA->input_begin() : *Inputs->begin()); assert(CompileJA && "Backend job is not preceeded by compile job."); const Tool *Compiler = TC->SelectTool(*CompileJA); if (!Compiler) @@ -1841,7 +1841,7 @@ InputInfo Driver::BuildJobsForActionNoCache( } // Override current action with a real host compile action and continue // processing it. - A = *CHA->begin(); + A = *CHA->input_begin(); } if (const InputAction *IA = dyn_cast<InputAction>(A)) { @@ -1867,7 +1867,7 @@ InputInfo Driver::BuildJobsForActionNoCache( else TC = &C.getDefaultToolChain(); - return BuildJobsForAction(C, *BAA->begin(), TC, ArchName, AtTopLevel, + return BuildJobsForAction(C, *BAA->input_begin(), TC, ArchName, AtTopLevel, MultipleArchs, LinkingOutput, CachedResults); } @@ -1875,11 +1875,11 @@ InputInfo Driver::BuildJobsForActionNoCache( // Initial processing of CudaDeviceAction carries host params. // Call BuildJobsForAction() again, now with correct device parameters. InputInfo II = BuildJobsForAction( - C, *CDA->begin(), C.getCudaDeviceToolChain(), CDA->getGpuArchName(), - CDA->isAtTopLevel(), /*MultipleArchs*/ true, LinkingOutput, - CachedResults); - // Currently II's Action is *CDA->begin(). Set it to CDA instead, so that - // one can retrieve II's GPU arch. + C, *CDA->input_begin(), C.getCudaDeviceToolChain(), + CDA->getGpuArchName(), CDA->isAtTopLevel(), /*MultipleArchs=*/true, + LinkingOutput, CachedResults); + // Currently II's Action is *CDA->input_begin(). Set it to CDA instead, so + // that one can retrieve II's GPU arch. II.setAction(A); return II; } @@ -2364,7 +2364,8 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, bool Driver::ShouldUseClangCompiler(const JobAction &JA) const { // Say "no" if there is not exactly one input of a type clang understands. - if (JA.size() != 1 || !types::isAcceptedByClang((*JA.begin())->getType())) + if (JA.size() != 1 || + !types::isAcceptedByClang((*JA.input_begin())->getType())) return false; // And say "no" if this is not a kind of action clang understands. diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 235d760..2991189 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2471,8 +2471,8 @@ static bool ContainsCompileAction(const Action *A) { if (isa<CompileJobAction>(A) || isa<BackendJobAction>(A)) return true; - for (const auto &Act : *A) - if (ContainsCompileAction(Act)) + for (const auto &AI : A->inputs()) + if (ContainsCompileAction(AI)) return true; return false; diff --git a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp index 3019164..6c44932 100644 --- a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -70,7 +70,7 @@ clang::createInvocationFromCommandLine(ArrayRef<const char *> ArgList, for (auto &A : C->getActions()){ // On MacOSX real actions may end up being wrapped in BindArchAction if (isa<driver::BindArchAction>(A)) - A = *A->begin(); + A = *A->input_begin(); if (isa<driver::CudaDeviceAction>(A)) { CudaCompilation = true; break; diff --git a/clang/lib/Tooling/CompilationDatabase.cpp b/clang/lib/Tooling/CompilationDatabase.cpp index 957e401..8fc4a1f 100644 --- a/clang/lib/Tooling/CompilationDatabase.cpp +++ b/clang/lib/Tooling/CompilationDatabase.cpp @@ -139,9 +139,8 @@ private: ; } - for (driver::ActionList::const_iterator I = A->begin(), E = A->end(); - I != E; ++I) - runImpl(*I, CollectChildren); + for (const driver::Action *AI : A->inputs()) + runImpl(AI, CollectChildren); } }; |