mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Mark the prefetch intrinsic as IntrWriteArgMem, instead of the
default of IntrWriteMem, to at least indicate that it doesn't "capture" the argument pointer. llvm-svn: 42768
This commit is contained in:
parent
9da3bddf43
commit
a2ec0a3c2c
@ -153,8 +153,12 @@ def int_stacksave : Intrinsic<[llvm_ptr_ty], [IntrReadMem]>,
|
|||||||
GCCBuiltin<"__builtin_stack_save">;
|
GCCBuiltin<"__builtin_stack_save">;
|
||||||
def int_stackrestore : Intrinsic<[llvm_void_ty, llvm_ptr_ty]>,
|
def int_stackrestore : Intrinsic<[llvm_void_ty, llvm_ptr_ty]>,
|
||||||
GCCBuiltin<"__builtin_stack_restore">;
|
GCCBuiltin<"__builtin_stack_restore">;
|
||||||
|
// IntrWriteArgMem is more pessimistic than strictly necessary for prefetch,
|
||||||
|
// however it does conveniently prevent the prefetch from being reordered
|
||||||
|
// with respect to nearby accesses to the same memory.
|
||||||
def int_prefetch : Intrinsic<[llvm_void_ty, llvm_ptr_ty,
|
def int_prefetch : Intrinsic<[llvm_void_ty, llvm_ptr_ty,
|
||||||
llvm_i32_ty, llvm_i32_ty]>;
|
llvm_i32_ty, llvm_i32_ty],
|
||||||
|
[IntrWriteArgMem]>;
|
||||||
def int_pcmarker : Intrinsic<[llvm_void_ty, llvm_i32_ty]>;
|
def int_pcmarker : Intrinsic<[llvm_void_ty, llvm_i32_ty]>;
|
||||||
|
|
||||||
def int_readcyclecounter : Intrinsic<[llvm_i64_ty]>;
|
def int_readcyclecounter : Intrinsic<[llvm_i64_ty]>;
|
||||||
|
Loading…
Reference in New Issue
Block a user