From: Marek Olšák <marek.ol...@amd.com> Not sure if this is the right way to do it, but it seems to work. --- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 9 +++++++++ src/gallium/auxiliary/gallivm/lp_bld_misc.h | 3 +++ 2 files changed, 12 insertions(+)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index 23ef3ed..d9b62b8 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -697,3 +697,12 @@ lp_free_memory_manager(LLVMMCJITMemoryManagerRef memorymgr) { delete reinterpret_cast<BaseMemoryManager*>(memorymgr); } + +extern "C" void +lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes) +{ + llvm::Argument *A = llvm::unwrap<llvm::Argument>(val); + llvm::AttrBuilder B; + B.addDereferenceableAttr(bytes); + A->addAttr(llvm::AttributeSet::get(A->getContext(), A->getArgNo() + 1, B)); +} diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h index d038e3b..c127c48 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h @@ -73,6 +73,9 @@ lp_get_default_memory_manager(); extern void lp_free_memory_manager(LLVMMCJITMemoryManagerRef memorymgr); +extern void +lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes); + #ifdef __cplusplus } #endif -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev