[Mesa-dev] [PATCH 1/3] gallivm: remove lp_add_attr_dereferenceable in favor of amd/common
Marek Olšák
maraeo at gmail.com
Tue Mar 21 22:18:32 UTC 2017
From: Marek Olšák <marek.olsak at amd.com>
---
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 11 -----------
src/gallium/auxiliary/gallivm/lp_bld_misc.h | 3 ---
src/gallium/drivers/radeonsi/si_shader.c | 2 +-
3 files changed, 1 insertion(+), 15 deletions(-)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 444686f..2a388cb 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -740,31 +740,20 @@ lp_get_default_memory_manager()
return reinterpret_cast<LLVMMCJITMemoryManagerRef>(mm);
}
extern "C"
void
lp_free_memory_manager(LLVMMCJITMemoryManagerRef memorymgr)
{
delete reinterpret_cast<BaseMemoryManager*>(memorymgr);
}
-extern "C" void
-lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes)
-{
-#if HAVE_LLVM >= 0x0306
- 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));
-#endif
-}
-
extern "C" LLVMValueRef
lp_get_called_value(LLVMValueRef call)
{
#if HAVE_LLVM >= 0x0309
return LLVMGetCalledValue(call);
#elif HAVE_LLVM >= 0x0305
return llvm::wrap(llvm::CallSite(llvm::unwrap<llvm::Instruction>(call)).getCalledValue());
#else
return NULL; /* radeonsi doesn't support so old LLVM. */
#endif
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h
index 6abb30d..dafb4cf 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h
@@ -66,23 +66,20 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
extern void
lp_free_generated_code(struct lp_generated_code *code);
extern LLVMMCJITMemoryManagerRef
lp_get_default_memory_manager();
extern void
lp_free_memory_manager(LLVMMCJITMemoryManagerRef memorymgr);
-extern void
-lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes);
-
extern LLVMValueRef
lp_get_called_value(LLVMValueRef call);
extern bool
lp_is_function(LLVMValueRef v);
enum lp_float_mode {
LP_FLOAT_MODE_DEFAULT,
LP_FLOAT_MODE_NO_SIGNED_ZEROS_FP_MATH,
LP_FLOAT_MODE_UNSAFE_FP_MATH,
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 93b6a6e..580781bd 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -5279,21 +5279,21 @@ static void si_create_function(struct si_shader_context *ctx,
/* The combination of:
* - ByVal
* - dereferenceable
* - invariant.load
* allows the optimization passes to move loads and reduces
* SGPR spilling significantly.
*/
if (LLVMGetTypeKind(LLVMTypeOf(P)) == LLVMPointerTypeKind) {
lp_add_function_attr(ctx->main_fn, i + 1, LP_FUNC_ATTR_BYVAL);
lp_add_function_attr(ctx->main_fn, i + 1, LP_FUNC_ATTR_NOALIAS);
- lp_add_attr_dereferenceable(P, UINT64_MAX);
+ ac_add_attr_dereferenceable(P, UINT64_MAX);
} else
lp_add_function_attr(ctx->main_fn, i + 1, LP_FUNC_ATTR_INREG);
}
LLVMAddTargetDependentFunctionAttr(ctx->main_fn,
"no-signed-zeros-fp-math",
"true");
if (ctx->screen->b.debug_flags & DBG_UNSAFE_MATH) {
/* These were copied from some LLVM test. */
--
2.7.4
More information about the mesa-dev
mailing list