gallivm, ac: add writeonly and inaccessiblememonly attributes
authorMarek Olšák <marek.olsak@amd.com>
Fri, 24 Feb 2017 01:11:07 +0000 (02:11 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 3 Mar 2017 14:29:30 +0000 (15:29 +0100)
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_llvm_util.c
src/amd/common/ac_llvm_util.h
src/gallium/auxiliary/gallivm/lp_bld_intr.c
src/gallium/auxiliary/gallivm/lp_bld_intr.h

index 1936014525bcf707357c4739ded2f0347ad51ba7..2598875ab70a4ae4d021bc09c7c2184c38beb848 100644 (file)
@@ -172,6 +172,8 @@ static const char *attr_to_str(enum ac_func_attr attr)
    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";
    default:
           fprintf(stderr, "Unhandled function attribute: %x\n", attr);
           return 0;
index 805db77178589367b1f47085bc63c5439a8e8ca7..e786bb7337175a1fee192beb29c356b6a1da2641 100644 (file)
@@ -41,6 +41,8 @@ enum ac_func_attr {
        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
index 0b25ae5d9d64d265984c1a7a95da7d0d3ec5cb8c..07d31029c3e9a3806b27a28c42e9c299913d5867 100644 (file)
@@ -150,6 +150,8 @@ static const char *attr_to_str(enum lp_func_attr attr)
    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;
index 0032df5ceac35dc76f5f6919a4220271a0ee3d09..7bd6efa456872222ff841a6d369a1f96d8934da7 100644 (file)
@@ -54,6 +54,8 @@ enum lp_func_attr {
    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