On Feb 26, 2017 1:09 AM, "Jan Vesely" <jan.ves...@rutgers.edu> wrote:
On Sun, 2017-02-26 at 00:58 +0100, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > --- > src/amd/common/ac_llvm_util.c | 2 ++ > src/amd/common/ac_llvm_util.h | 2 ++ > src/gallium/auxiliary/gallivm/lp_bld_intr.c | 2 ++ > src/gallium/auxiliary/gallivm/lp_bld_intr.h | 2 ++ > 4 files changed, 8 insertions(+) > > diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c > index fb525dd..3cc06d4 100644 > --- a/src/amd/common/ac_llvm_util.c > +++ b/src/amd/common/ac_llvm_util.c > @@ -165,20 +165,22 @@ static LLVMAttribute ac_attr_to_llvm_attr(enum ac_func_attr attr) > static const char *attr_to_str(enum ac_func_attr attr) > { > switch (attr) { > case AC_FUNC_ATTR_ALWAYSINLINE: return "alwaysinline"; > case AC_FUNC_ATTR_BYVAL: return "byval"; > case AC_FUNC_ATTR_INREG: return "inreg"; > case AC_FUNC_ATTR_NOALIAS: return "noalias"; > case AC_FUNC_ATTR_NOUNWIND: return "nounwind"; > case AC_FUNC_ATTR_READNONE: return "readnone"; > case AC_FUNC_ATTR_READONLY: return "readonly"; > + case AC_FUNC_ATTR_WRITEONLY: return "writeonly"; > + case AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY: return "inaccessiblememonly"; does this not give "error: duplicate case value" when compiled with LLVM-3.9 ? This code is not built with LLVM 3.9. Marek Jan > default: > fprintf(stderr, "Unhandled function attribute: %x\n", attr); > return 0; > } > } > > #endif > > static void > ac_add_function_attr(LLVMContextRef ctx, LLVMValueRef function, > diff --git a/src/amd/common/ac_llvm_util.h b/src/amd/common/ac_llvm_util.h > index 4fe4ab4..1cdee2e 100644 > --- a/src/amd/common/ac_llvm_util.h > +++ b/src/amd/common/ac_llvm_util.h > @@ -34,20 +34,22 @@ extern "C" { > #endif > > enum ac_func_attr { > AC_FUNC_ATTR_ALWAYSINLINE = (1 << 0), > AC_FUNC_ATTR_BYVAL = (1 << 1), > AC_FUNC_ATTR_INREG = (1 << 2), > AC_FUNC_ATTR_NOALIAS = (1 << 3), > AC_FUNC_ATTR_NOUNWIND = (1 << 4), > AC_FUNC_ATTR_READNONE = (1 << 5), > AC_FUNC_ATTR_READONLY = (1 << 6), > + AC_FUNC_ATTR_WRITEONLY = HAVE_LLVM >= 0x0400 ? (1 << 7) : 0, > + AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY = HAVE_LLVM >= 0x0400 ? (1 << 8) : 0, > > /* Legacy intrinsic that needs attributes on function declarations > * and they must match the internal LLVM definition exactly, otherwise > * intrinsic selection fails. > */ > AC_FUNC_ATTR_LEGACY = (1u << 31), > }; > > LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family, bool supports_spill); > > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c b/src/gallium/auxiliary/gallivm/lp_bld_intr.c > index 1b50e68..0be57c9 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c > +++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c > @@ -143,20 +143,22 @@ static LLVMAttribute lp_attr_to_llvm_attr(enum lp_func_attr attr) > static const char *attr_to_str(enum lp_func_attr attr) > { > switch (attr) { > case LP_FUNC_ATTR_ALWAYSINLINE: return "alwaysinline"; > case LP_FUNC_ATTR_BYVAL: return "byval"; > case LP_FUNC_ATTR_INREG: return "inreg"; > case LP_FUNC_ATTR_NOALIAS: return "noalias"; > case LP_FUNC_ATTR_NOUNWIND: return "nounwind"; > case LP_FUNC_ATTR_READNONE: return "readnone"; > case LP_FUNC_ATTR_READONLY: return "readonly"; > + case LP_FUNC_ATTR_WRITEONLY: return "writeonly"; > + case LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY: return "inaccessiblememonly"; > default: > _debug_printf("Unhandled function attribute: %x\n", attr); > return 0; > } > } > > #endif > > void > lp_add_function_attr(LLVMContextRef ctx, LLVMValueRef function, > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.h b/src/gallium/auxiliary/gallivm/lp_bld_intr.h > index d279911..4d14725 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_intr.h > +++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.h > @@ -47,20 +47,22 @@ > #define LP_MAX_FUNC_ARGS 32 > > enum lp_func_attr { > LP_FUNC_ATTR_ALWAYSINLINE = (1 << 0), > LP_FUNC_ATTR_BYVAL = (1 << 1), > LP_FUNC_ATTR_INREG = (1 << 2), > LP_FUNC_ATTR_NOALIAS = (1 << 3), > LP_FUNC_ATTR_NOUNWIND = (1 << 4), > LP_FUNC_ATTR_READNONE = (1 << 5), > LP_FUNC_ATTR_READONLY = (1 << 6), > + LP_FUNC_ATTR_WRITEONLY = HAVE_LLVM >= 0x0400 ? (1 << 7) : 0, > + LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY = HAVE_LLVM >= 0x0400 ? (1 << 8) : 0, > > /* Legacy intrinsic that needs attributes on function declarations > * and they must match the internal LLVM definition exactly, otherwise > * intrinsic selection fails. > */ > LP_FUNC_ATTR_LEGACY = (1u << 31), > }; > > void > lp_format_intrinsic(char *name,
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev