aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Attributes.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2021-12-18 14:56:12 +0100
committerNikita Popov <npopov@redhat.com>2021-12-20 11:37:01 +0100
commit6e30cb7673df293fd294acef7eadca8050b5a71e (patch)
tree5cdff21a2cd074f36b32898ceb6a3f05e5432c2d /llvm/lib/IR/Attributes.cpp
parent6c2bf01270a8a52b7986d5c49eaa7ad1c7083ec5 (diff)
downloadllvm-6e30cb7673df293fd294acef7eadca8050b5a71e.zip
llvm-6e30cb7673df293fd294acef7eadca8050b5a71e.tar.gz
llvm-6e30cb7673df293fd294acef7eadca8050b5a71e.tar.bz2
[Attributes] Add AttributeList ctor from AttributeSet (NFC)
It was already possible to create an AttributeList from an Index and an AttributeSet. However, this would actually end up using the implicit constructor on AttrBuilder, thus doing an unnecessary conversion from AttributeSet to AttrBuilder to AttributeSet. Instead we can accept the AttributeSet directly, as that is what we need anyway.
Diffstat (limited to 'llvm/lib/IR/Attributes.cpp')
-rw-r--r--llvm/lib/IR/Attributes.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/IR/Attributes.cpp b/llvm/lib/IR/Attributes.cpp
index ede520b..c899afa 100644
--- a/llvm/lib/IR/Attributes.cpp
+++ b/llvm/lib/IR/Attributes.cpp
@@ -1136,16 +1136,21 @@ AttributeList AttributeList::get(LLVMContext &C, AttributeSet FnAttrs,
}
AttributeList AttributeList::get(LLVMContext &C, unsigned Index,
- const AttrBuilder &B) {
- if (!B.hasAttributes())
+ AttributeSet Attrs) {
+ if (!Attrs.hasAttributes())
return {};
Index = attrIdxToArrayIdx(Index);
SmallVector<AttributeSet, 8> AttrSets(Index + 1);
- AttrSets[Index] = AttributeSet::get(C, B);
+ AttrSets[Index] = Attrs;
return getImpl(C, AttrSets);
}
AttributeList AttributeList::get(LLVMContext &C, unsigned Index,
+ const AttrBuilder &B) {
+ return get(C, Index, AttributeSet::get(C, B));
+}
+
+AttributeList AttributeList::get(LLVMContext &C, unsigned Index,
ArrayRef<Attribute::AttrKind> Kinds) {
SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
for (const auto K : Kinds)