[PATCH] D116034: Prevent copy of AttrBuilder

serge via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 20 05:34:54 PST 2021


serge-sans-paille created this revision.
serge-sans-paille added a reviewer: nikic.
Herald added subscribers: dexonsmith, jdoerfert, hiraditya.
serge-sans-paille requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

It's a relatively heavy data structure, make sure it's not copied.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D116034

Files:
  llvm/include/llvm/IR/Attributes.h
  llvm/lib/IR/Verifier.cpp


Index: llvm/lib/IR/Verifier.cpp
===================================================================
--- llvm/lib/IR/Verifier.cpp
+++ llvm/lib/IR/Verifier.cpp
@@ -543,7 +543,7 @@
 
   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 @@
   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);
Index: llvm/include/llvm/IR/Attributes.h
===================================================================
--- llvm/include/llvm/IR/Attributes.h
+++ llvm/include/llvm/IR/Attributes.h
@@ -963,6 +963,8 @@
 
 public:
   AttrBuilder() = default;
+  AttrBuilder(AttrBuilder const&) = delete;
+  AttrBuilder(AttrBuilder &&) = default;
 
   explicit AttrBuilder(const Attribute &A) {
     addAttribute(A);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116034.395420.patch
Type: text/x-patch
Size: 1404 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211220/df63b4e7/attachment.bin>


More information about the llvm-commits mailing list