"Serge Martin (EdB)" <edb+m...@sigluy.net> writes: > On Wednesday 19 August 2015 11:56:08 Zoltan Gilian wrote: >> There is no MDOperand in llvm 3.5. >> >> v2: Check if kernel metadata is present to avoid crash (EdB). >> v3: Second attempt to avoid crash: switch off metadata query for llvm < 3.6. > > Since the change you made for image support won't be backport to llvm 3.5 > this > is good for me. And it no longer make clover crash. > > Reviewed-by: Serge Martin (EdB) <edb+m...@sigluy.net> > > But since I don't have commit access, not sure what my r-b worth. > > Could it be pushed before the branch point?
Looks OK to me, just pushed it with your R-b tag and mine. > >> --- >> .../state_trackers/clover/llvm/invocation.cpp | 33 >> ++++++++++++++-------- 1 file changed, 21 insertions(+), 12 deletions(-) >> >> diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp >> b/src/gallium/state_trackers/clover/llvm/invocation.cpp index >> 8eb0469..908a296 100644 >> --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp >> +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp >> @@ -346,6 +346,15 @@ namespace { >> >> // Kernel metadata >> >> + struct kernel_arg_md { >> + llvm::StringRef type_name; >> + llvm::StringRef access_qual; >> + kernel_arg_md(llvm::StringRef type_name_, llvm::StringRef >> access_qual_): + type_name(type_name_), access_qual(access_qual_) >> {} >> + }; >> + >> +#if HAVE_LLVM >= 0x0306 >> + >> const llvm::MDNode * >> get_kernel_metadata(const llvm::Function *kernel_func) { >> auto mod = kernel_func->getParent(); >> @@ -356,12 +365,8 @@ namespace { >> >> const llvm::MDNode *kernel_node = nullptr; >> for (unsigned i = 0; i < kernels_node->getNumOperands(); ++i) { >> -#if HAVE_LLVM >= 0x0306 >> auto func = llvm::mdconst::dyn_extract<llvm::Function>( >> -#else >> - auto func = llvm::dyn_cast<llvm::Function>( >> -#endif >> - >> kernels_node->getOperand(i)->getOperand(0)); + >> kernels_node->getOperand(i)->getOperand(0)); >> if (func == kernel_func) { >> kernel_node = kernels_node->getOperand(i); >> break; >> @@ -387,13 +392,6 @@ namespace { >> return node; >> } >> >> - struct kernel_arg_md { >> - llvm::StringRef type_name; >> - llvm::StringRef access_qual; >> - kernel_arg_md(llvm::StringRef type_name_, llvm::StringRef >> access_qual_): - type_name(type_name_), access_qual(access_qual_) >> {} >> - }; >> - >> std::vector<kernel_arg_md> >> get_kernel_arg_md(const llvm::Function *kernel_func) { >> auto num_args = kernel_func->getArgumentList().size(); >> @@ -415,6 +413,17 @@ namespace { >> return res; >> } >> >> +#else >> + >> + std::vector<kernel_arg_md> >> + get_kernel_arg_md(const llvm::Function *kernel_func) { >> + return std::vector<kernel_arg_md>( >> + kernel_func->getArgumentList().size(), >> + kernel_arg_md("", "")); >> + } >> + >> +#endif // HAVE_LLVM >= 0x0306 >> + >> std::vector<module::argument> >> get_kernel_args(const llvm::Module *mod, const std::string &kernel_name, >> const clang::LangAS::Map &address_spaces) {
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev