summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2015-09-08 23:52:33 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2015-09-08 23:52:33 +0000
commit84df12375cdec370fd09a99e3de2e788351ff403 (patch)
treee1f89510fbda184151560b0c8246103ff7d5f7c9 /clang/lib/CodeGen/CodeGenFunction.h
parent00691e3169fc90e4202c6a592e9fda20e006c299 (diff)
downloadbcm5719-llvm-84df12375cdec370fd09a99e3de2e788351ff403.tar.gz
bcm5719-llvm-84df12375cdec370fd09a99e3de2e788351ff403.zip
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 llvm-svn: 247104
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h
index 86154e923eb..39259329832 100644
--- a/clang/lib/CodeGen/CodeGenFunction.h
+++ b/clang/lib/CodeGen/CodeGenFunction.h
@@ -2449,7 +2449,8 @@ public:
AlignmentSource::Type,
llvm::MDNode *TBAAInfo = nullptr,
QualType TBAABaseTy = QualType(),
- uint64_t TBAAOffset = 0);
+ uint64_t TBAAOffset = 0,
+ bool isNontemporal = false);
/// EmitLoadOfScalar - Load a scalar value from an address, taking
/// care to appropriately convert from the memory representation to
@@ -2465,7 +2466,7 @@ public:
AlignmentSource AlignSource = AlignmentSource::Type,
llvm::MDNode *TBAAInfo = nullptr, bool isInit = false,
QualType TBAABaseTy = QualType(),
- uint64_t TBAAOffset = 0);
+ uint64_t TBAAOffset = 0, bool isNontemporal = false);
/// EmitStoreOfScalar - Store a scalar value to an address, taking
/// care to appropriately convert from the memory representation to
OpenPOWER on IntegriCloud