Skip to content

Commit

Permalink
Update code in buildCudaActions and BuildActions to latest idiom.
Browse files Browse the repository at this point in the history
Summary:
Use llvm::any_of, llvm::find, etc.

No functional changes.

Reviewers: tra

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D15936

llvm-svn: 257190
  • Loading branch information
Justin Lebar committed Jan 8, 2016
1 parent dc3ad6f commit 23bcef9
Showing 1 changed file with 14 additions and 18 deletions.
32 changes: 14 additions & 18 deletions clang/lib/Driver/Driver.cpp
Expand Up @@ -1298,11 +1298,11 @@ buildCudaActions(Compilation &C, DerivedArgList &Args, const Arg *InputArg,
SmallVector<const char *, 4> GpuArchList;
llvm::StringSet<> GpuArchNames;
for (Arg *A : Args) {
if (A->getOption().matches(options::OPT_cuda_gpu_arch_EQ)) {
A->claim();
if (GpuArchNames.insert(A->getValue()).second)
GpuArchList.push_back(A->getValue());
}
if (!A->getOption().matches(options::OPT_cuda_gpu_arch_EQ))
continue;
A->claim();
if (GpuArchNames.insert(A->getValue()).second)
GpuArchList.push_back(A->getValue());
}

// Default to sm_20 which is the lowest common denominator for supported GPUs.
Expand All @@ -1325,13 +1325,10 @@ buildCudaActions(Compilation &C, DerivedArgList &Args, const Arg *InputArg,
"Failed to create actions for all devices");

// Check whether any of device actions stopped before they could generate PTX.
bool PartialCompilation = false;
for (unsigned I = 0, E = GpuArchList.size(); I != E; ++I) {
if (CudaDeviceActions[I]->getKind() != Action::BackendJobClass) {
PartialCompilation = true;
break;
}
}
bool PartialCompilation =
llvm::any_of(CudaDeviceActions, [](const Action *a) {
return a->getKind() != Action::BackendJobClass;
});

// Figure out what to do with device actions -- pass them as inputs to the
// host action or run each of them independently.
Expand Down Expand Up @@ -1470,12 +1467,11 @@ void Driver::BuildActions(Compilation &C, const ToolChain &TC,
continue;
}

phases::ID CudaInjectionPhase = FinalPhase;
for (const auto &Phase : PL)
if (Phase <= FinalPhase && Phase == phases::Compile) {
CudaInjectionPhase = Phase;
break;
}
phases::ID CudaInjectionPhase =
(phases::Compile < FinalPhase &&
llvm::find(PL, phases::Compile) != PL.end())
? phases::Compile
: FinalPhase;

// Build the pipeline for this file.
std::unique_ptr<Action> Current(new InputAction(*InputArg, InputType));
Expand Down

0 comments on commit 23bcef9

Please sign in to comment.