[clang-tools-extra] 45617e1 - [clang-doc] Pass Record argument by const-ref. NFCI.

Simon Pilgrim via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 24 02:08:52 PDT 2021


Author: Simon Pilgrim
Date: 2021-09-24T10:06:13+01:00
New Revision: 45617e1dd8a1b9791f3bd15aee2614383e25b298

URL: https://github.com/llvm/llvm-project/commit/45617e1dd8a1b9791f3bd15aee2614383e25b298
DIFF: https://github.com/llvm/llvm-project/commit/45617e1dd8a1b9791f3bd15aee2614383e25b298.diff

LOG: [clang-doc] Pass Record argument by const-ref. NFCI.

Record is a SmallVector<uint64_t, 1024> - we really need to avoid passing this by value.

Avoid unnecessary big copies, reported by coverity.

Added: 
    

Modified: 
    clang-tools-extra/clang-doc/BitcodeReader.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-doc/BitcodeReader.cpp b/clang-tools-extra/clang-doc/BitcodeReader.cpp
index 8d551d376f08a..9e0ec99291732 100644
--- a/clang-tools-extra/clang-doc/BitcodeReader.cpp
+++ b/clang-tools-extra/clang-doc/BitcodeReader.cpp
@@ -17,13 +17,14 @@ namespace doc {
 
 using Record = llvm::SmallVector<uint64_t, 1024>;
 
-llvm::Error decodeRecord(Record R, llvm::SmallVectorImpl<char> &Field,
+llvm::Error decodeRecord(const Record &R, llvm::SmallVectorImpl<char> &Field,
                          llvm::StringRef Blob) {
   Field.assign(Blob.begin(), Blob.end());
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, SymbolID &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, SymbolID &Field,
+                         llvm::StringRef Blob) {
   if (R[0] != BitCodeConstants::USRHashSize)
     return llvm::createStringError(llvm::inconvertibleErrorCode(),
                                    "incorrect USR size");
@@ -35,12 +36,12 @@ llvm::Error decodeRecord(Record R, SymbolID &Field, llvm::StringRef Blob) {
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, bool &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, bool &Field, llvm::StringRef Blob) {
   Field = R[0] != 0;
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, int &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, int &Field, llvm::StringRef Blob) {
   if (R[0] > INT_MAX)
     return llvm::createStringError(llvm::inconvertibleErrorCode(),
                                    "integer too large to parse");
@@ -48,7 +49,7 @@ llvm::Error decodeRecord(Record R, int &Field, llvm::StringRef Blob) {
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, AccessSpecifier &Field,
+llvm::Error decodeRecord(const Record &R, AccessSpecifier &Field,
                          llvm::StringRef Blob) {
   switch (R[0]) {
   case AS_public:
@@ -63,7 +64,8 @@ llvm::Error decodeRecord(Record R, AccessSpecifier &Field,
   }
 }
 
-llvm::Error decodeRecord(Record R, TagTypeKind &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, TagTypeKind &Field,
+                         llvm::StringRef Blob) {
   switch (R[0]) {
   case TTK_Struct:
   case TTK_Interface:
@@ -78,7 +80,7 @@ llvm::Error decodeRecord(Record R, TagTypeKind &Field, llvm::StringRef Blob) {
   }
 }
 
-llvm::Error decodeRecord(Record R, llvm::Optional<Location> &Field,
+llvm::Error decodeRecord(const Record &R, llvm::Optional<Location> &Field,
                          llvm::StringRef Blob) {
   if (R[0] > INT_MAX)
     return llvm::createStringError(llvm::inconvertibleErrorCode(),
@@ -87,7 +89,8 @@ llvm::Error decodeRecord(Record R, llvm::Optional<Location> &Field,
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, InfoType &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, InfoType &Field,
+                         llvm::StringRef Blob) {
   switch (auto IT = static_cast<InfoType>(R[0])) {
   case InfoType::IT_namespace:
   case InfoType::IT_record:
@@ -101,7 +104,8 @@ llvm::Error decodeRecord(Record R, InfoType &Field, llvm::StringRef Blob) {
                                  "invalid value for InfoType");
 }
 
-llvm::Error decodeRecord(Record R, FieldId &Field, llvm::StringRef Blob) {
+llvm::Error decodeRecord(const Record &R, FieldId &Field,
+                         llvm::StringRef Blob) {
   switch (auto F = static_cast<FieldId>(R[0])) {
   case FieldId::F_namespace:
   case FieldId::F_parent:
@@ -117,14 +121,15 @@ llvm::Error decodeRecord(Record R, FieldId &Field, llvm::StringRef Blob) {
                                  "invalid value for FieldId");
 }
 
-llvm::Error decodeRecord(Record R,
+llvm::Error decodeRecord(const Record &R,
                          llvm::SmallVectorImpl<llvm::SmallString<16>> &Field,
                          llvm::StringRef Blob) {
   Field.push_back(Blob);
   return llvm::Error::success();
 }
 
-llvm::Error decodeRecord(Record R, llvm::SmallVectorImpl<Location> &Field,
+llvm::Error decodeRecord(const Record &R,
+                         llvm::SmallVectorImpl<Location> &Field,
                          llvm::StringRef Blob) {
   if (R[0] > INT_MAX)
     return llvm::createStringError(llvm::inconvertibleErrorCode(),
@@ -133,7 +138,7 @@ llvm::Error decodeRecord(Record R, llvm::SmallVectorImpl<Location> &Field,
   return llvm::Error::success();
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         const unsigned VersionNo) {
   if (ID == VERSION && R[0] == VersionNo)
     return llvm::Error::success();
@@ -141,7 +146,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
                                  "mismatched bitcode version number");
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         NamespaceInfo *I) {
   switch (ID) {
   case NAMESPACE_USR:
@@ -156,7 +161,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         RecordInfo *I) {
   switch (ID) {
   case RECORD_USR:
@@ -179,7 +184,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         BaseRecordInfo *I) {
   switch (ID) {
   case BASE_RECORD_USR:
@@ -202,7 +207,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         EnumInfo *I) {
   switch (ID) {
   case ENUM_USR:
@@ -223,7 +228,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         FunctionInfo *I) {
   switch (ID) {
   case FUNCTION_USR:
@@ -244,12 +249,12 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         TypeInfo *I) {
   return llvm::Error::success();
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         FieldTypeInfo *I) {
   switch (ID) {
   case FIELD_TYPE_NAME:
@@ -260,7 +265,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         MemberTypeInfo *I) {
   switch (ID) {
   case MEMBER_TYPE_NAME:
@@ -273,7 +278,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         CommentInfo *I) {
   switch (ID) {
   case COMMENT_KIND:
@@ -304,7 +309,7 @@ llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
   }
 }
 
-llvm::Error parseRecord(Record R, unsigned ID, llvm::StringRef Blob,
+llvm::Error parseRecord(const Record &R, unsigned ID, llvm::StringRef Blob,
                         Reference *I, FieldId &F) {
   switch (ID) {
   case REFERENCE_USR:


        


More information about the cfe-commits mailing list