From: Justin Lebar Date: Tue, 10 May 2016 00:31:25 +0000 (+0000) Subject: [nvvm] Mark ldu and ldg intrinsics as IntrArgMemOnly. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e598f97f6c933b38107facfd7ad561b2ccf0a675;p=llvm [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268996 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/IntrinsicsNVVM.td b/include/llvm/IR/IntrinsicsNVVM.td index 409221215f3..a4cffbb0bbc 100644 --- a/include/llvm/IR/IntrinsicsNVVM.td +++ b/include/llvm/IR/IntrinsicsNVVM.td @@ -799,30 +799,30 @@ def llvm_anyi64ptr_ty : LLVMAnyPointerType; // (space)i64* // pointer's alignment. def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty], [LLVMAnyPointerType>, 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>, 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>, 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>, 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>, 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>, llvm_i32_ty], - [IntrReadMem, NoCapture<0>], + [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldg.global.p">; // Use for generic pointers