forked from OSchip/llvm-project
[nvvm] Mark ldu and ldg intrinsics as IntrArgMemOnly.
Summary: Previously these intrinsics were marked as can-read any memory address. Now they're marked as reading only the pointer they're passed. Reviewers: rnk Subscribers: jholewinski, llvm-commits, tra Differential Revision: http://reviews.llvm.org/D20080 llvm-svn: 268996
This commit is contained in:
parent
50deb6d028
commit
ca3802bc01
|
@ -799,30 +799,30 @@ def llvm_anyi64ptr_ty : LLVMAnyPointerType<llvm_i64_ty>; // (space)i64*
|
|||
// pointer's alignment.
|
||||
def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldu.global.i">;
|
||||
def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldu.global.f">;
|
||||
def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldu.global.p">;
|
||||
|
||||
// Generated within nvvm. Use for ldg on sm_35 or later. Second arg is the
|
||||
// pointer's alignment.
|
||||
def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldg.global.i">;
|
||||
def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldg.global.f">;
|
||||
def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty],
|
||||
[LLVMAnyPointerType<LLVMMatchType<0>>, llvm_i32_ty],
|
||||
[IntrReadMem, NoCapture<0>],
|
||||
[IntrReadMem, IntrArgMemOnly, NoCapture<0>],
|
||||
"llvm.nvvm.ldg.global.p">;
|
||||
|
||||
// Use for generic pointers
|
||||
|
|
Loading…
Reference in New Issue