[PATCH] D71703: [Alignment][NFC] Align compatible methods for CreateElementUnorderedAtomicMemSet
Guillaume Chatelet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 19 06:44:19 PST 2019
gchatelet created this revision.
gchatelet added a reviewer: courbet.
Herald added subscribers: llvm-commits, jfb, hiraditya.
Herald added a project: LLVM.
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D71703
Files:
llvm/include/llvm/IR/IRBuilder.h
llvm/lib/IR/IRBuilder.cpp
Index: llvm/lib/IR/IRBuilder.cpp
===================================================================
--- llvm/lib/IR/IRBuilder.cpp
+++ llvm/lib/IR/IRBuilder.cpp
@@ -125,10 +125,8 @@
}
CallInst *IRBuilderBase::CreateElementUnorderedAtomicMemSet(
- Value *Ptr, Value *Val, Value *Size, unsigned Align, uint32_t ElementSize,
+ Value *Ptr, Value *Val, Value *Size, Align Alignment, uint32_t ElementSize,
MDNode *TBAATag, MDNode *ScopeTag, MDNode *NoAliasTag) {
- assert(Align >= ElementSize &&
- "Pointer alignment must be at least element size.");
Ptr = getCastedInt8PtrValue(Ptr);
Value *Ops[] = {Ptr, Val, Size, getInt32(ElementSize)};
@@ -139,7 +137,7 @@
CallInst *CI = createCallHelper(TheFn, Ops, this);
- cast<AtomicMemSetInst>(CI)->setDestAlignment(Align);
+ cast<AtomicMemSetInst>(CI)->setDestAlignment(Alignment);
// Set the TBAA info if present.
if (TBAATag)
Index: llvm/include/llvm/IR/IRBuilder.h
===================================================================
--- llvm/include/llvm/IR/IRBuilder.h
+++ llvm/include/llvm/IR/IRBuilder.h
@@ -468,19 +468,45 @@
/// If the pointer isn't an i8*, it will be converted. If a TBAA tag is
/// specified, it will be added to the instruction. Likewise with alias.scope
/// and noalias tags.
+ /// FIXME: Remove this function once transition to Align is over.
+ /// Use the version that takes Align instead of this one.
+ LLVM_ATTRIBUTE_DEPRECATED(
+ CallInst *CreateElementUnorderedAtomicMemSet(
+ Value *Ptr, Value *Val, uint64_t Size, unsigned Alignment,
+ uint32_t ElementSize, MDNode *TBAATag = nullptr,
+ MDNode *ScopeTag = nullptr, MDNode *NoAliasTag = nullptr),
+ "Use the version that takes Align instead of this one") {
+ return CreateElementUnorderedAtomicMemSet(Ptr, Val, getInt64(Size),
+ Align(Alignment), ElementSize,
+ TBAATag, ScopeTag, NoAliasTag);
+ }
+
CallInst *CreateElementUnorderedAtomicMemSet(Value *Ptr, Value *Val,
- uint64_t Size, unsigned Align,
+ uint64_t Size, Align Alignment,
uint32_t ElementSize,
MDNode *TBAATag = nullptr,
MDNode *ScopeTag = nullptr,
MDNode *NoAliasTag = nullptr) {
- return CreateElementUnorderedAtomicMemSet(Ptr, Val, getInt64(Size), Align,
+ return CreateElementUnorderedAtomicMemSet(Ptr, Val, getInt64(Size),
+ Align(Alignment), ElementSize,
+ TBAATag, ScopeTag, NoAliasTag);
+ }
+
+ /// FIXME: Remove this function once transition to Align is over.
+ /// Use the version that takes Align instead of this one.
+ LLVM_ATTRIBUTE_DEPRECATED(
+ CallInst *CreateElementUnorderedAtomicMemSet(
+ Value *Ptr, Value *Val, Value *Size, unsigned Alignment,
+ uint32_t ElementSize, MDNode *TBAATag = nullptr,
+ MDNode *ScopeTag = nullptr, MDNode *NoAliasTag = nullptr),
+ "Use the version that takes Align instead of this one") {
+ return CreateElementUnorderedAtomicMemSet(Ptr, Val, Size, Align(Alignment),
ElementSize, TBAATag, ScopeTag,
NoAliasTag);
}
CallInst *CreateElementUnorderedAtomicMemSet(Value *Ptr, Value *Val,
- Value *Size, unsigned Align,
+ Value *Size, Align Alignment,
uint32_t ElementSize,
MDNode *TBAATag = nullptr,
MDNode *ScopeTag = nullptr,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71703.234713.patch
Type: text/x-patch
Size: 4015 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191219/273077d9/attachment.bin>
More information about the llvm-commits
mailing list