]> granicus.if.org Git - clang/commit
Introduce __builtin_nontemporal_store and __builtin_nontemporal_load.
authorMichael Zolotukhin <mzolotukhin@apple.com>
Tue, 8 Sep 2015 23:52:33 +0000 (23:52 +0000)
committerMichael Zolotukhin <mzolotukhin@apple.com>
Tue, 8 Sep 2015 23:52:33 +0000 (23:52 +0000)
commit2db8497948ecd5fe0552cef154e55a72a8eb083c
tree66406ab93325bf793d4323a676ea84ad7f13ac5d
parent17c95f6490e917c5764c4a8281df492d19542172
Introduce __builtin_nontemporal_store and __builtin_nontemporal_load.

Summary:
Currently clang provides no general way to generate nontemporal loads/stores.
There are some architecture specific builtins for doing so (e.g. in x86), but
there is no way to generate non-temporal store on, e.g. AArch64. This patch adds
generic builtins which are expanded to a simple store with '!nontemporal'
attribute in IR.

Differential Revision: http://reviews.llvm.org/D12313

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247104 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Builtins.def
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/CodeGen/CGBuiltin.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGValue.h
lib/CodeGen/CodeGenFunction.h
lib/Sema/SemaChecking.cpp
test/CodeGen/Nontemporal.cpp [new file with mode: 0644]