Michel Dänzer <[email protected]> writes: > From: Michel Dänzer <[email protected]> > > createInternalizePass now takes a callback instead of a StringSet. > > Signed-off-by: Michel Dänzer <[email protected]> > --- > src/gallium/state_trackers/clover/llvm/invocation.cpp | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp > b/src/gallium/state_trackers/clover/llvm/invocation.cpp > index 4d11c24..97acd03 100644 > --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp > +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp > @@ -322,6 +322,18 @@ namespace { > // list of kernel functions to the internalizer. The internalizer will > // treat the functions in the list as "main" functions and internalize > // all of the other functions. > +#if HAVE_LLVM >= 0x0309 > + auto preserve_kernels = [=](const llvm::GlobalValue &GV) { > + for (std::vector<llvm::Function *>::const_iterator I = > kernels.begin(), > + E = > kernels.end(); > + I != E; ++I) { > + llvm::Function *kernel = *I;
'for (const auto &kernel : kernels) {' instead of the last four lines of
code? With my style nitpick taken into account:
Reviewed-by: Francisco Jerez <[email protected]>
> + if (GV.getName() == kernel->getName())
> + return true;
> + }
> + return false;
> + };
> +#else
> std::vector<const char*> export_list;
> for (std::vector<llvm::Function *>::const_iterator I = kernels.begin(),
> E = kernels.end();
> @@ -329,12 +341,17 @@ namespace {
> llvm::Function *kernel = *I;
> export_list.push_back(kernel->getName().data());
> }
> +#endif
> #if HAVE_LLVM < 0x0306
> PM.add(new llvm::DataLayoutPass(mod));
> #elif HAVE_LLVM < 0x0307
> PM.add(new llvm::DataLayoutPass());
> #endif
> +#if HAVE_LLVM >= 0x0309
> + PM.add(llvm::createInternalizePass(preserve_kernels));
> +#else
> PM.add(llvm::createInternalizePass(export_list));
> +#endif
>
> llvm::PassManagerBuilder PMB;
> PMB.OptLevel = optimization_level;
> --
> 2.8.0.rc3
>
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
