[llvm] 9cd55c7 - Prevent copy of AttrBuilder
Serge Guelton via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 20 07:33:43 PST 2021
Author: Serge Guelton
Date: 2021-12-20T10:33:32-05:00
New Revision: 9cd55c7c3463fea334fd3169023bb63cca7276e5
URL: https://github.com/llvm/llvm-project/commit/9cd55c7c3463fea334fd3169023bb63cca7276e5
DIFF: https://github.com/llvm/llvm-project/commit/9cd55c7c3463fea334fd3169023bb63cca7276e5.diff
LOG: Prevent copy of AttrBuilder
It's a relatively heavy data structure, make sure it's not copied.
Differential Revision: https://reviews.llvm.org/D116034
Added:
Modified:
llvm/include/llvm/IR/Attributes.h
llvm/lib/IR/Verifier.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/IR/Attributes.h b/llvm/include/llvm/IR/Attributes.h
index 8eef8b49e6bfd..f64f15bd38baf 100644
--- a/llvm/include/llvm/IR/Attributes.h
+++ b/llvm/include/llvm/IR/Attributes.h
@@ -944,6 +944,8 @@ class AttrBuilder {
public:
AttrBuilder() = default;
+ AttrBuilder(const AttrBuilder &) = delete;
+ AttrBuilder(AttrBuilder &&) = default;
AttrBuilder(const Attribute &A) {
addAttribute(A);
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 1dbac8cc40ada..50605f50769d2 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -543,7 +543,7 @@ class Verifier : public InstVisitor<Verifier>, VerifierSupport {
void verifySwiftErrorCall(CallBase &Call, const Value *SwiftErrorVal);
void verifySwiftErrorValue(const Value *SwiftErrorVal);
- void verifyTailCCMustTailAttrs(AttrBuilder Attrs, StringRef Context);
+ void verifyTailCCMustTailAttrs(const AttrBuilder &Attrs, StringRef Context);
void verifyMustTailCall(CallInst &CI);
bool verifyAttributeCount(AttributeList Attrs, unsigned Params);
void verifyAttributeTypes(AttributeSet Attrs, const Value *V);
@@ -3314,7 +3314,7 @@ void Verifier::visitCallBase(CallBase &Call) {
visitInstruction(Call);
}
-void Verifier::verifyTailCCMustTailAttrs(AttrBuilder Attrs,
+void Verifier::verifyTailCCMustTailAttrs(const AttrBuilder &Attrs,
StringRef Context) {
Assert(!Attrs.contains(Attribute::InAlloca),
Twine("inalloca attribute not allowed in ") + Context);
More information about the llvm-commits
mailing list