diff options
143 files changed, 386 insertions, 382 deletions
diff --git a/clang/include/clang/AST/OpenMPClause.h b/clang/include/clang/AST/OpenMPClause.h index 3ecc1d4..e3f975c 100644 --- a/clang/include/clang/AST/OpenMPClause.h +++ b/clang/include/clang/AST/OpenMPClause.h @@ -5772,11 +5772,11 @@ private: /*SupportsMapper=*/true, &MapperQualifierLoc, &MapperIdInfo), MapType(MapType), MapTypeIsImplicit(MapTypeIsImplicit), MapLoc(MapLoc) { - assert(llvm::array_lengthof(MapTypeModifiers) == MapModifiers.size() && + assert(llvm::size(MapTypeModifiers) == MapModifiers.size() && "Unexpected number of map type modifiers."); llvm::copy(MapModifiers, std::begin(MapTypeModifiers)); - assert(llvm::array_lengthof(MapTypeModifiersLoc) == + assert(llvm::size(MapTypeModifiersLoc) == MapModifiersLoc.size() && "Unexpected number of map type modifier locations."); llvm::copy(MapModifiersLoc, std::begin(MapTypeModifiersLoc)); @@ -6694,11 +6694,11 @@ class OMPToClause final : public OMPMappableExprListClause<OMPToClause>, : OMPMappableExprListClause(llvm::omp::OMPC_to, Locs, Sizes, /*SupportsMapper=*/true, &MapperQualifierLoc, &MapperIdInfo) { - assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() && + assert(llvm::size(MotionModifiers) == TheMotionModifiers.size() && "Unexpected number of motion modifiers."); llvm::copy(TheMotionModifiers, std::begin(MotionModifiers)); - assert(llvm::array_lengthof(MotionModifiersLoc) == + assert(llvm::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() && "Unexpected number of motion modifier locations."); llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc)); @@ -6896,11 +6896,11 @@ class OMPFromClause final : OMPMappableExprListClause(llvm::omp::OMPC_from, Locs, Sizes, /*SupportsMapper=*/true, &MapperQualifierLoc, &MapperIdInfo) { - assert(llvm::array_lengthof(MotionModifiers) == TheMotionModifiers.size() && + assert(llvm::size(MotionModifiers) == TheMotionModifiers.size() && "Unexpected number of motion modifiers."); llvm::copy(TheMotionModifiers, std::begin(MotionModifiers)); - assert(llvm::array_lengthof(MotionModifiersLoc) == + assert(llvm::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() && "Unexpected number of motion modifier locations."); llvm::copy(TheMotionModifiersLoc, std::begin(MotionModifiersLoc)); diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 9d63724..2111e93 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -6594,7 +6594,7 @@ QualType ASTContext::getPromotedIntegerType(QualType Promotable) const { uint64_t FromSize = getTypeSize(BT); QualType PromoteTypes[] = { IntTy, UnsignedIntTy, LongTy, UnsignedLongTy, LongLongTy, UnsignedLongLongTy }; - for (size_t Idx = 0; Idx < llvm::array_lengthof(PromoteTypes); ++Idx) { + for (size_t Idx = 0; Idx < llvm::size(PromoteTypes); ++Idx) { uint64_t ToSize = getTypeSize(PromoteTypes[Idx]); if (FromSize < ToSize || (FromSize == ToSize && diff --git a/clang/lib/AST/AttrDocTable.cpp b/clang/lib/AST/AttrDocTable.cpp index 3bfedac..8f7e7ea 100644 --- a/clang/lib/AST/AttrDocTable.cpp +++ b/clang/lib/AST/AttrDocTable.cpp @@ -21,7 +21,7 @@ static const llvm::StringRef AttrDoc[] = { }; llvm::StringRef clang::Attr::getDocumentation(clang::attr::Kind K) { - if(K < llvm::array_lengthof(AttrDoc)) + if(K < llvm::size(AttrDoc)) return AttrDoc[K]; return ""; } diff --git a/clang/lib/AST/CommentCommandTraits.cpp b/clang/lib/AST/CommentCommandTraits.cpp index bdc0dd4..68f8006 100644 --- a/clang/lib/AST/CommentCommandTraits.cpp +++ b/clang/lib/AST/CommentCommandTraits.cpp @@ -17,7 +17,7 @@ namespace comments { CommandTraits::CommandTraits(llvm::BumpPtrAllocator &Allocator, const CommentOptions &CommentOptions) : - NextID(llvm::array_lengthof(Commands)), Allocator(Allocator) { + NextID(llvm::size(Commands)), Allocator(Allocator) { registerCommentOptions(CommentOptions); } @@ -115,7 +115,7 @@ const CommandInfo *CommandTraits::registerBlockCommand(StringRef CommandName) { const CommandInfo *CommandTraits::getBuiltinCommandInfo( unsigned CommandID) { - if (CommandID < llvm::array_lengthof(Commands)) + if (CommandID < llvm::size(Commands)) return &Commands[CommandID]; return nullptr; } @@ -131,7 +131,7 @@ const CommandInfo *CommandTraits::getRegisteredCommandInfo( const CommandInfo *CommandTraits::getRegisteredCommandInfo( unsigned CommandID) const { - return RegisteredCommands[CommandID - llvm::array_lengthof(Commands)]; + return RegisteredCommands[CommandID - llvm::size(Commands)]; } } // end namespace comments diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp index 87db131..3e6204a 100644 --- a/clang/lib/Basic/DiagnosticIDs.cpp +++ b/clang/lib/Basic/DiagnosticIDs.cpp @@ -202,7 +202,7 @@ const StaticDiagInfoRec StaticDiagInfo[] = { } // namespace -static const unsigned StaticDiagInfoSize = llvm::array_lengthof(StaticDiagInfo); +static const unsigned StaticDiagInfoSize = llvm::size(StaticDiagInfo); /// GetDiagInfo - Return the StaticDiagInfoRec entry for the specified DiagID, /// or null if the ID is invalid. @@ -317,7 +317,7 @@ static const StaticDiagCategoryRec CategoryNameTable[] = { /// getNumberOfCategories - Return the number of categories unsigned DiagnosticIDs::getNumberOfCategories() { - return llvm::array_lengthof(CategoryNameTable) - 1; + return llvm::size(CategoryNameTable) - 1; } /// getCategoryNameFromID - Given a category ID, return the name of the diff --git a/clang/lib/Basic/Targets/NVPTX.h b/clang/lib/Basic/Targets/NVPTX.h index 589f24f..83f220d 100644 --- a/clang/lib/Basic/Targets/NVPTX.h +++ b/clang/lib/Basic/Targets/NVPTX.h @@ -159,7 +159,7 @@ public: /// DWARF. Optional<unsigned> getDWARFAddressSpace(unsigned AddressSpace) const override { - if (AddressSpace >= llvm::array_lengthof(NVPTXDWARFAddrSpaceMap) || + if (AddressSpace >= llvm::size(NVPTXDWARFAddrSpaceMap) || NVPTXDWARFAddrSpaceMap[AddressSpace] < 0) return llvm::None; return NVPTXDWARFAddrSpaceMap[AddressSpace]; diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 0fb7ec2..888f9e2 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -3206,7 +3206,7 @@ void CodeGenFunction::EmitCheck( assert(IsSanitizerScope); assert(Checked.size() > 0); assert(CheckHandler >= 0 && - size_t(CheckHandler) < llvm::array_lengthof(SanitizerHandlers)); + size_t(CheckHandler) < llvm::size(SanitizerHandlers)); const StringRef CheckName = SanitizerHandlers[CheckHandler].Name; llvm::Value *FatalCond = nullptr; diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp index 8cc6091..a2c8f8e 100644 --- a/clang/lib/CodeGen/CGObjC.cpp +++ b/clang/lib/CodeGen/CGObjC.cpp @@ -1749,7 +1749,7 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){ &CGM.getContext().Idents.get("count") }; Selector FastEnumSel = - CGM.getContext().Selectors.getSelector(llvm::array_lengthof(II), &II[0]); + CGM.getContext().Selectors.getSelector(llvm::size(II), &II[0]); QualType ItemsTy = getContext().getConstantArrayType(getContext().getObjCIdType(), diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 67d941c..c479375 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -278,7 +278,7 @@ void Compilation::initCompilationForDiagnostics() { options::OPT_o, options::OPT_MD, options::OPT_MMD, options::OPT_M, options::OPT_MM, options::OPT_MF, options::OPT_MG, options::OPT_MJ, options::OPT_MQ, options::OPT_MT, options::OPT_MV}; - for (unsigned i = 0, e = llvm::array_lengthof(OutputOpts); i != e; ++i) { + for (unsigned i = 0, e = llvm::size(OutputOpts); i != e; ++i) { if (TranslatedArgs->hasArg(OutputOpts[i])) TranslatedArgs->eraseArg(OutputOpts[i]); } diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 7551ee4..cc6f721 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -151,7 +151,7 @@ static const DriverSuffix *FindDriverSuffix(StringRef ProgName, size_t &Pos) { {"flang", "--driver-mode=flang"}, }; - for (size_t i = 0; i < llvm::array_lengthof(DriverSuffixes); ++i) { + for (size_t i = 0; i < llvm::size(DriverSuffixes); ++i) { StringRef Suffix(DriverSuffixes[i].Suffix); if (ProgName.endswith(Suffix)) { Pos = ProgName.size() - Suffix.size(); diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index f7da3f1..8fed215 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -1694,7 +1694,7 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver, "TVOS_DEPLOYMENT_TARGET", "WATCHOS_DEPLOYMENT_TARGET", }; - static_assert(llvm::array_lengthof(EnvVars) == Darwin::LastDarwinPlatform + 1, + static_assert(llvm::size(EnvVars) == Darwin::LastDarwinPlatform + 1, "Missing platform"); for (const auto &I : llvm::enumerate(llvm::makeArrayRef(EnvVars))) { if (char *Env = ::getenv(I.value())) @@ -1715,11 +1715,11 @@ getDeploymentTargetFromEnvironmentVariables(const Driver &TheDriver, Targets[Darwin::TvOS] = ""; } else { // Don't allow conflicts in any other platform. - unsigned FirstTarget = llvm::array_lengthof(Targets); - for (unsigned I = 0; I != llvm::array_lengthof(Targets); ++I) { + unsigned FirstTarget = llvm::size(Targets); + for (unsigned I = 0; I != llvm::size(Targets); ++I) { if (Targets[I].empty()) continue; - if (FirstTarget == llvm::array_lengthof(Targets)) + if (FirstTarget == llvm::size(Targets)) FirstTarget = I; else TheDriver.Diag(diag::err_drv_conflicting_deployment_targets) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 1bd187a..c5c17e1 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -42,7 +42,7 @@ static constexpr TypeInfo TypeInfos[] = { #include "clang/Driver/Types.def" #undef TYPE }; -static const unsigned numTypes = llvm::array_lengthof(TypeInfos); +static const unsigned numTypes = llvm::size(TypeInfos); static const TypeInfo &getInfo(unsigned id) { assert(id > 0 && id - 1 < numTypes && "Invalid Type ID."); diff --git a/clang/lib/Frontend/PrintPreprocessedOutput.cpp b/clang/lib/Frontend/PrintPreprocessedOutput.cpp index 1d0022b..23d2bec 100644 --- a/clang/lib/Frontend/PrintPreprocessedOutput.cpp +++ b/clang/lib/Frontend/PrintPreprocessedOutput.cpp @@ -863,7 +863,7 @@ static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok, } else if (Tok.isLiteral() && !Tok.needsCleaning() && Tok.getLiteralData()) { OS.write(Tok.getLiteralData(), Tok.getLength()); - } else if (Tok.getLength() < llvm::array_lengthof(Buffer)) { + } else if (Tok.getLength() < llvm::size(Buffer)) { const char *TokPtr = Buffer; unsigned Len = PP.getSpelling(Tok, TokPtr); OS.write(TokPtr, Len); diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index f21938c..d051699 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -1365,7 +1365,7 @@ void Parser::ParseExternalSourceSymbolAttribute( ArgsUnion Args[] = {Language.get(), DefinedInExpr.get(), GeneratedDeclaration}; Attrs.addNew(&ExternalSourceSymbol, SourceRange(Loc, T.getCloseLocation()), - ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax); + ScopeName, ScopeLoc, Args, llvm::size(Args), Syntax); } /// Parse the contents of the "objc_bridge_related" attribute. @@ -1493,7 +1493,7 @@ void Parser::ParseSwiftNewTypeAttribute( ArgsUnion Args[] = {SwiftType}; Attrs.addNew(&AttrName, SourceRange(AttrNameLoc, T.getCloseLocation()), - ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax); + ScopeName, ScopeLoc, Args, llvm::size(Args), Syntax); } diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index de3d58b..d13f6e0 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -188,7 +188,7 @@ static OpenMPDirectiveKindExWrapper parseOpenMPDirectiveKind(Parser &P) { if (DKind == OMPD_unknown) return OMPD_unknown; - for (unsigned I = 0; I < llvm::array_lengthof(F); ++I) { + for (unsigned I = 0; I < llvm::size(F); ++I) { if (DKind != F[I][0]) continue; diff --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp index d4dc790..c595237 100644 --- a/clang/lib/Sema/DeclSpec.cpp +++ b/clang/lib/Sema/DeclSpec.cpp @@ -238,7 +238,7 @@ DeclaratorChunk DeclaratorChunk::getFunction(bool hasProto, // is already used (consider a function returning a function pointer) or too // small (function with too many parameters), go to the heap. if (!TheDeclarator.InlineStorageUsed && - NumParams <= llvm::array_lengthof(TheDeclarator.InlineParams)) { + NumParams <= llvm::size(TheDeclarator.InlineParams)) { I.Fun.Params = TheDeclarator.InlineParams; new (I.Fun.Params) ParamInfo[NumParams]; I.Fun.DeleteParams = false; @@ -308,7 +308,7 @@ void Declarator::setDecompositionBindings( // Allocate storage for bindings and stash them away. if (Bindings.size()) { if (!InlineStorageUsed && - Bindings.size() <= llvm::array_lengthof(InlineBindings)) { + Bindings.size() <= llvm::size(InlineBindings)) { BindingGroup.Bindings = InlineBindings; BindingGroup.DeleteBindings = false; InlineStorageUsed = true; diff --git a/clang/lib/Sema/ParsedAttr.cpp b/clang/lib/Sema/ParsedAttr.cpp index 045847d..5c533f1 100644 --- a/clang/lib/Sema/ParsedAttr.cpp +++ b/clang/lib/Sema/ParsedAttr.cpp @@ -111,7 +111,7 @@ namespace { const ParsedAttrInfo &ParsedAttrInfo::get(const AttributeCommonInfo &A) { // If we have a ParsedAttrInfo for this ParsedAttr then return that. - if ((size_t)A.getParsedKind() < llvm::array_lengthof(AttrInfoMap)) + if ((size_t)A.getParsedKind() < llvm::size(AttrInfoMap)) return *AttrInfoMap[A.getParsedKind()]; // If this is an ignored attribute then return an appropriate ParsedAttrInfo. diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp index af6ee24..219f2c0 100644 --- a/clang/lib/Sema/SemaLookup.cpp +++ b/clang/lib/Sema/SemaLookup.cpp @@ -4726,7 +4726,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef, "extern", "inline", "static", "typedef" }; - const unsigned NumCTypeSpecs = llvm::array_lengthof(CTypeSpecs); + const unsigned NumCTypeSpecs = llvm::size(CTypeSpecs); for (unsigned I = 0; I != NumCTypeSpecs; ++I) Consumer.addKeywordResult(CTypeSpecs[I]); @@ -4780,7 +4780,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef, static const char *const CXXExprs[] = { "delete", "new", "operator", "throw", "typeid" }; - const unsigned NumCXXExprs = llvm::array_lengthof(CXXExprs); + const unsigned NumCXXExprs = llvm::size(CXXExprs); for (unsigned I = 0; I != NumCXXExprs; ++I) Consumer.addKeywordResult(CXXExprs[I]); @@ -4806,7 +4806,7 @@ static void AddKeywordsToConsumer(Sema &SemaRef, // Statements. static const char *const CStmts[] = { "do", "else", "for", "goto", "if", "return", "switch", "while" }; - const unsigned NumCStmts = llvm::array_lengthof(CStmts); + const unsigned NumCStmts = llvm::size(CStmts); for (unsigned I = 0; I != NumCStmts; ++I) Consumer.addKeywordResult(CStmts[I]); diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index e43b3ca..8a0e26f 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -14357,7 +14357,7 @@ TreeTransform<Derived>::RebuildArrayType(QualType ElementType, SemaRef.Context.UnsignedIntTy, SemaRef.Context.UnsignedLongTy, SemaRef.Context.UnsignedLongLongTy, SemaRef.Context.UnsignedInt128Ty }; - const unsigned NumTypes = llvm::array_lengthof(Types); + const unsigned NumTypes = llvm::size(Types); QualType SizeType; for (unsigned I = 0; I != NumTypes; ++I) if (Size->getBitWidth() == SemaRef.Context.getIntWidth(Types[I])) { diff --git a/clang/test/Analysis/templates.cpp b/clang/test/Analysis/templates.cpp index e7c30a7..2c5b22d 100644 --- a/clang/test/Analysis/templates.cpp +++ b/clang/test/Analysis/templates.cpp @@ -34,13 +34,13 @@ int main(){ // <rdar://problem/11949235> template<class T, unsigned N> -inline unsigned array_lengthof(T (&)[N]) { +inline unsigned size(T (&)[N]) { return N; } void testNonTypeTemplateInstantiation() { const char *S[] = { "a", "b" }; - clang_analyzer_eval(array_lengthof(S) == 2); + clang_analyzer_eval(size(S) == 2); #ifndef NO_INLINE // expected-warning@-2 {{TRUE}} #else diff --git a/clang/test/SemaTemplate/instantiate-init.cpp b/clang/test/SemaTemplate/instantiate-init.cpp index 6db33a9..52f2b41 100644 --- a/clang/test/SemaTemplate/instantiate-init.cpp +++ b/clang/test/SemaTemplate/instantiate-init.cpp @@ -86,7 +86,7 @@ namespace PR7985 { template<int N> struct integral_c { }; template <typename T, int N> - integral_c<N> array_lengthof(T (&x)[N]) { return integral_c<N>(); } // expected-note 2{{candidate template ignored: could not match 'T[N]' against 'const Data<}} + integral_c<N> size(T (&x)[N]) { return integral_c<N>(); } // expected-note 2{{candidate template ignored: could not match 'T[N]' against 'const Data<}} template<typename T> struct Data { @@ -105,14 +105,14 @@ namespace PR7985 { const Data<float*> Description<float*>::data[]; void test() { - integral_c<1> ic1 = array_lengthof(Description<int>::data); - (void)sizeof(array_lengthof(Description<float>::data)); + integral_c<1> ic1 = size(Description<int>::data); + (void)sizeof(size(Description<float>::data)); - (void)sizeof(array_lengthof( // expected-error{{no matching function for call to 'array_lengthof'}} + (void)sizeof(size( // expected-error{{no matching function for call to 'size'}} Description<int*>::data // expected-note{{in instantiation of static data member 'PR7985::Description<int *>::data' requested here}} )); - array_lengthof(Description<float*>::data); // expected-error{{no matching function for call to 'array_lengthof'}} + size(Description<float*>::data); // expected-error{{no matching function for call to 'size'}} } } diff --git a/clang/unittests/AST/CommentLexer.cpp b/clang/unittests/AST/CommentLexer.cpp index 456473e..9540ebf 100644 --- a/clang/unittests/AST/CommentLexer.cpp +++ b/clang/unittests/AST/CommentLexer.cpp @@ -91,7 +91,7 @@ TEST_F(CommentLexerTest, Basic2) { const char *Sources[] = { "//", "///", "//!", "///<", "//!<" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -107,7 +107,7 @@ TEST_F(CommentLexerTest, Basic3) { const char *Sources[] = { "/**/", "/***/", "/*!*/", "/**<*/", "/*!<*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -126,7 +126,7 @@ TEST_F(CommentLexerTest, Basic4) { "// Meow\n", "// Meow\r\n", "//! Meow\r", }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -146,7 +146,7 @@ TEST_F(CommentLexerTest, Basic5) { "/* Meow*/", "/** Meow*/", "/*! Meow*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -169,7 +169,7 @@ TEST_F(CommentLexerTest, Basic6) { "// Aaa\\\r" " Bbb\\ \r" " Ccc?" "?/\r" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -248,7 +248,7 @@ TEST_F(CommentLexerTest, Basic7) { // A command marker followed by comment end. TEST_F(CommentLexerTest, DoxygenCommand1) { const char *Sources[] = { "//@", "///@", "//!@" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -265,7 +265,7 @@ TEST_F(CommentLexerTest, DoxygenCommand1) { // A command marker followed by comment end. TEST_F(CommentLexerTest, DoxygenCommand2) { const char *Sources[] = { "/*@*/", "/**@*/", "/*!@*/"}; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -283,7 +283,7 @@ TEST_F(CommentLexerTest, DoxygenCommand2) { // A command marker followed by comment end. TEST_F(CommentLexerTest, DoxygenCommand3) { const char *Sources[] = { "/*\\*/", "/**\\*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -311,12 +311,12 @@ TEST_F(CommentLexerTest, DoxygenCommand4) { "::", "" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); - ASSERT_EQ(array_lengthof(Text), Toks.size()); + ASSERT_EQ(size(Text), Toks.size()); for (size_t j = 0, e = Toks.size(); j != e; j++) { if(Toks[j].is(tok::text)) { @@ -578,7 +578,7 @@ TEST_F(CommentLexerTest, VerbatimBlock1) { "/** \\verbatim\\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -645,7 +645,7 @@ TEST_F(CommentLexerTest, VerbatimBlock4) { "/** Meow \\verbatim aaa \\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -676,7 +676,7 @@ TEST_F(CommentLexerTest, VerbatimBlock5) { "/** Meow \\verbatim aaa */" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -901,7 +901,7 @@ TEST_F(CommentLexerTest, VerbatimLine1) { "/** \\fn*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -926,7 +926,7 @@ TEST_F(CommentLexerTest, VerbatimLine2) { "/** \\fn void *foo(const char *zzz = \"\\$\");*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1052,7 +1052,7 @@ TEST_F(CommentLexerTest, HTML4) { "// <img " }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1169,7 +1169,7 @@ TEST_F(CommentLexerTest, HTML9) { "// <img src " }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1195,7 +1195,7 @@ TEST_F(CommentLexerTest, HTML10) { "// <img src =" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1225,7 +1225,7 @@ TEST_F(CommentLexerTest, HTML11) { "// <img src = \'" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1284,7 +1284,7 @@ TEST_F(CommentLexerTest, HTML13) { "// <img src=\'val\\\"\\'val\'" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1315,7 +1315,7 @@ TEST_F(CommentLexerTest, HTML14) { "// <img src=\'val\\\"\\'val\'>" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1348,7 +1348,7 @@ TEST_F(CommentLexerTest, HTML15) { "// <img />" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1373,7 +1373,7 @@ TEST_F(CommentLexerTest, HTML16) { "// <img / Aaa" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); @@ -1797,7 +1797,7 @@ TEST_F(CommentLexerTest, HTMLCharacterReferences16) { "// =" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { std::vector<Token> Toks; lexString(Sources[i], Toks); diff --git a/clang/unittests/AST/CommentParser.cpp b/clang/unittests/AST/CommentParser.cpp index 62c461a..0de20dd 100644 --- a/clang/unittests/AST/CommentParser.cpp +++ b/clang/unittests/AST/CommentParser.cpp @@ -664,7 +664,7 @@ TEST_F(CommentParserTest, ParagraphSplitting1) { "*/"), }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -801,7 +801,7 @@ TEST_F(CommentParserTest, ParamCommand3) { "// Bbb\n") }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -831,7 +831,7 @@ TEST_F(CommentParserTest, ParamCommand4) { "// Bbb\n"), }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -861,7 +861,7 @@ TEST_F(CommentParserTest, ParamCommand5) { "// Bbb\n"), }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -892,7 +892,7 @@ TEST_F(CommentParserTest, ParamCommand6) { "// Bbb\n" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -947,7 +947,7 @@ TEST_F(CommentParserTest, TParamCommand1) { "// Bbb\n" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1081,7 +1081,7 @@ TEST_F(CommentParserTest, HTML1) { "// <a >" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1103,7 +1103,7 @@ TEST_F(CommentParserTest, HTML2) { "// <br />" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1127,7 +1127,7 @@ TEST_F(CommentParserTest, HTML3) { "// <a href >", }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1149,7 +1149,7 @@ TEST_F(CommentParserTest, HTML4) { "// <a href=\"bbb\">", }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1172,7 +1172,7 @@ TEST_F(CommentParserTest, HTML5) { "// </a >" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1285,7 +1285,7 @@ TEST_F(CommentParserTest, VerbatimBlock5) { " *\\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 1)); @@ -1309,7 +1309,7 @@ TEST_F(CommentParserTest, VerbatimBlock6) { " * \\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1336,7 +1336,7 @@ TEST_F(CommentParserTest, VerbatimBlock7) { " * \\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1364,7 +1364,7 @@ TEST_F(CommentParserTest, VerbatimBlock8) { " * Bbb\n" " * \\endverbatim*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1387,7 +1387,7 @@ TEST_F(CommentParserTest, VerbatimLine1) { "// \\fn\n" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1405,7 +1405,7 @@ TEST_F(CommentParserTest, VerbatimLine2) { "/** \\fn void *foo(const char *zzz = \"\\$\");*/" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); @@ -1424,7 +1424,7 @@ TEST_F(CommentParserTest, Deprecated) { "/// @deprecated\n" }; - for (size_t i = 0, e = array_lengthof(Sources); i != e; i++) { + for (size_t i = 0, e = size(Sources); i != e; i++) { FullComment *FC = parseString(Sources[i]); ASSERT_TRUE(HasChildCount(FC, 2)); diff --git a/clang/unittests/AST/DeclPrinterTest.cpp b/clang/unittests/AST/DeclPrinterTest.cpp index c2d7d78..628b948 100644 --- a/clang/unittests/AST/DeclPrinterTest.cpp +++ b/clang/unittests/AST/DeclPrinterTest.cpp @@ -731,7 +731,7 @@ TEST(DeclPrinter, TestCXXMethodDecl_Operator1) { "()", "[]" }; - for (unsigned i = 0, e = llvm::array_lengthof(OperatorNames); i != e; ++i) { + for (unsigned i = 0, e = llvm::size(OperatorNames); i != e; ++i) { SmallString<128> Code; Code.append("struct Z { void operator"); Code.append(OperatorNames[i]); @@ -754,7 +754,7 @@ TEST(DeclPrinter, TestCXXMethodDecl_Operator2) { "~", "!", "++", "--", "->" }; - for (unsigned i = 0, e = llvm::array_lengthof(OperatorNames); i != e; ++i) { + for (unsigned i = 0, e = llvm::size(OperatorNames); i != e; ++i) { SmallString<128> Code; Code.append("struct Z { void operator"); Code.append(OperatorNames[i]); diff --git a/clang/unittests/Tooling/CompilationDatabaseTest.cpp b/clang/unittests/Tooling/CompilationDatabaseTest.cpp index adb9de0..94ccdca 100644 --- a/clang/unittests/Tooling/CompilationDatabaseTest.cpp +++ b/clang/unittests/Tooling/CompilationDatabaseTest.cpp @@ -642,7 +642,7 @@ TEST(ParseFixedCompilationDatabase, HandlesPositionalArgsSyntaxOnly) { // Adjust the given command line arguments to ensure that any positional // arguments in them are stripped. const char *Argv[] = {"--", "somefile.cpp", "-fsyntax-only", "-DDEF3"}; - int Argc = llvm::array_lengthof(Argv); + int Argc = llvm::size(Argv); std::string ErrorMessage; std::unique_ptr<CompilationDatabase> Database = FixedCompilationDatabase::loadFromCommandLine(Argc, Argv, ErrorMessage); diff --git a/lld/COFF/Chunks.cpp b/lld/COFF/Chunks.cpp index 6cabb22..e26679c 100644 --- a/lld/COFF/Chunks.cpp +++ b/lld/COFF/Chunks.cpp @@ -947,7 +947,7 @@ MergeChunk::MergeChunk(uint32_t alignment) void MergeChunk::addSection(COFFLinkerContext &ctx, SectionChunk *c) { assert(isPowerOf2_32(c->getAlignment())); uint8_t p2Align = llvm::Log2_32(c->getAlignment()); - assert(p2Align < array_lengthof(ctx.mergeChunkInstances)); + assert(p2Align < size(ctx.mergeChunkInstances)); auto *&mc = ctx.mergeChunkInstances[p2Align]; if (!mc) mc = make<MergeChunk>(c->getAlignment()); diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp index f07bb9a..dfc9ede 100644 --- a/lldb/source/DataFormatters/FormatManager.cpp +++ b/lldb/source/DataFormatters/FormatManager.cpp @@ -77,7 +77,7 @@ static_assert((sizeof(g_format_infos) / sizeof(g_format_infos[0])) == kNumFormats, "All formats must have a corresponding info entry."); -static uint32_t g_num_format_infos = llvm::array_lengthof(g_format_infos); +static uint32_t g_num_format_infos = llvm::size(g_format_infos); static bool GetFormatFromFormatChar(char format_char, Format &format) { for (uint32_t i = 0; i < g_num_format_infos; ++i) { diff --git a/lldb/source/Host/common/MainLoop.cpp b/lldb/source/Host/common/MainLoop.cpp index d36587c..c7e0abd 100644 --- a/lldb/source/Host/common/MainLoop.cpp +++ b/lldb/source/Host/common/MainLoop.cpp @@ -108,7 +108,7 @@ Status MainLoop::RunImpl::Poll() { EV_SET(&in_events[i++], fd.first, EVFILT_READ, EV_ADD, 0, 0, 0); num_events = kevent(loop.m_kqueue, in_events.data(), in_events.size(), - out_events, llvm::array_lengthof(out_events), nullptr); + out_events, llvm::size(out_events), nullptr); if (num_events < 0) { if (errno == EINTR) { diff --git a/lldb/source/Host/windows/ConnectionGenericFileWindows.cpp b/lldb/source/Host/windows/ConnectionGenericFileWindows.cpp index 817663d..bbd471d 100644 --- a/lldb/source/Host/windows/ConnectionGenericFileWindows.cpp +++ b/lldb/source/Host/windows/ConnectionGenericFileWindows.cpp @@ -188,7 +188,7 @@ size_t ConnectionGenericFile::Read(void *dst, size_t dst_len, .count() : INFINITE; DWORD wait_result = - ::WaitForMultipleObjects(llvm::array_lengthof(m_event_handles), + ::WaitForMultipleObjects(llvm::size(m_event_handles), m_event_handles, FALSE, milliseconds); // All of the events are manual reset events, so make sure we reset them // to non-signalled. diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 59c2371..9df7c57 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -549,7 +549,7 @@ void CommandInterpreter::LoadCommandDictionary() { "breakpoint set --name '%1'"}}; // clang-format on - size_t num_regexes = llvm::array_lengthof(break_regexes); + size_t num_regexes = llvm::size(break_regexes); std::unique_ptr<CommandObjectRegexCommand> break_regex_cmd_up( new CommandObjectRegexCommand( diff --git a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp index a8d1cbc..b21f5d4 100644 --- a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp +++ b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp @@ -1187,7 +1187,7 @@ static const RegisterInfo g_register_infos[] = { }}; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos); + llvm::size(g_register_infos); const lldb_private::RegisterInfo * ABIMacOSX_arm::GetRegisterInfoArray(uint32_t &count) { @@ -1235,7 +1235,7 @@ bool ABIMacOSX_arm::PrepareTrivialCall(Thread &thread, addr_t sp, llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end(); - for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) { + for (size_t i = 0; i < llvm::size(reg_names); ++i) { if (ai == ae) break; diff --git a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp index 9ed042d..87a643f7 100644 --- a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp +++ b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp @@ -1190,7 +1190,7 @@ static const RegisterInfo g_register_infos[] = { }}; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos); + llvm::size(g_register_infos); const lldb_private::RegisterInfo * ABISysV_arm::GetRegisterInfoArray(uint32_t &count) { @@ -1240,7 +1240,7 @@ bool ABISysV_arm::PrepareTrivialCall(Thread &thread, addr_t sp, llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end(); - for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) { + for (size_t i = 0; i < llvm::size(reg_names); ++i) { if (ai == ae) break; diff --git a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp index 662689c..f06a325 100644 --- a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp +++ b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp @@ -503,7 +503,7 @@ static const RegisterInfo g_register_infos[] = { }; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos); + llvm::size(g_register_infos); const lldb_private::RegisterInfo * ABISysV_mips::GetRegisterInfoArray(uint32_t &count) { @@ -559,7 +559,7 @@ bool ABISysV_mips::PrepareTrivialCall(Thread &thread, addr_t sp, llvm::ArrayRef<addr_t>::iterator ai = args.begin(), ae = args.end(); // Write arguments to registers - for (size_t i = 0; i < llvm::array_lengthof(reg_names); ++i) { + for (size_t i = 0; i < llvm::size(reg_names); ++i) { if (ai == ae) break; diff --git a/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp b/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp index 7e27226..7003667 100644 --- a/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp +++ b/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp @@ -503,7 +503,7 @@ static const RegisterInfo g_register_infos_mips64[] = { }; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos_mips64); + llvm::size(g_register_infos_mips64); const lldb_private::RegisterInfo * ABISysV_mips64::GetRegisterInfoArray(uint32_t &count) { diff --git a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp index 70b9c46..fc95965 100644 --- a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp +++ b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp @@ -204,7 +204,7 @@ static const RegisterInfo g_register_infos[] = { }}; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos); + llvm::size(g_register_infos); const lldb_private::RegisterInfo * ABISysV_ppc::GetRegisterInfoArray(uint32_t &count) { diff --git a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp index f9a2851..9270ae5 100644 --- a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp +++ b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp @@ -52,10 +52,10 @@ LLDB_PLUGIN_DEFINE(ABISysV_ppc64) const lldb_private::RegisterInfo * ABISysV_ppc64::GetRegisterInfoArray(uint32_t &count) { if (GetByteOrder() == lldb::eByteOrderLittle) { - count = llvm::array_lengthof(g_register_infos_ppc64le); + count = llvm::size(g_register_infos_ppc64le); return g_register_infos_ppc64le; } else { - count = llvm::array_lengthof(g_register_infos_ppc64); + count = llvm::size(g_register_infos_ppc64); return g_register_infos_ppc64; } } diff --git a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp index f8156de..986225e 100644 --- a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp +++ b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp @@ -172,7 +172,7 @@ static const RegisterInfo g_register_infos[] = { }; static const uint32_t k_num_register_infos = - llvm::array_lengthof(g_register_infos); + llvm::size(g_register_infos); const lldb_private::RegisterInfo * ABISysV_s390x::GetRegisterInfoArray(uint32_t &count) { diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp index a5abce7..633c7e8 100644 --- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp +++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp @@ -405,7 +405,7 @@ DynamicLoaderDarwinKernel::ReadMachHeader(addr_t addr, Process *process, llvm::M const uint32_t magicks[] = { llvm::MachO::MH_MAGIC_64, llvm::MachO::MH_MAGIC, llvm::MachO::MH_CIGAM, llvm::MachO::MH_CIGAM_64}; bool found_matching_pattern = false; - for (size_t i = 0; i < llvm::array_lengthof (magicks); i++) + for (size_t i = 0; i < llvm::size (magicks); i++) if (::memcmp (&header.magic, &magicks[i], sizeof (uint32_t)) == 0) found_matching_pattern = true; diff --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp index 5a238c5d..4b3a45e 100644 --- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp +++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp @@ -13198,7 +13198,7 @@ EmulateInstructionARM::GetARMOpcodeForInstruction(const uint32_t opcode, &EmulateInstructionARM::EmulateRFE, "rfe{<amode>} <Rn>{!}"} }; - static const size_t k_num_arm_opcodes = llvm::array_lengthof(g_arm_opcodes); + static const size_t k_num_arm_opcodes = llvm::size(g_arm_opcodes); for (size_t i = 0; i < k_num_arm_opcodes; ++i) { if ((g_arm_opcodes[i].mask & opcode) == g_arm_opcodes[i].value && @@ -13749,7 +13749,7 @@ EmulateInstructionARM::GetThumbOpcodeForInstruction(const uint32_t opcode, &EmulateInstructionARM::EmulateUXTH, "uxth<c>.w <Rd>,<Rm>{,<rotation>}"}, }; - const size_t k_num_thumb_opcodes = llvm::array_lengthof(g_thumb_opcodes); + const size_t k_num_thumb_opcodes = llvm::size(g_thumb_opcodes); for (size_t i = 0; i < k_num_thumb_opcodes; ++i) { if ((g_thumb_opcodes[i].mask & opcode) == g_thumb_opcodes[i].value && (g_thumb_opcodes[i].variants & arm_isa) != 0) diff --git a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp index f86609f..3cac825 100644 --- a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp +++ b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp @@ -52,7 +52,7 @@ using namespace lldb_private; LLDB_PLUGIN_DEFINE_ADV(EmulateInstructionARM64, InstructionARM64) static bool LLDBTableGetRegisterInfo(uint32_t reg_num, RegisterInfo ®_info) { - if (reg_num >= llvm::array_lengthof(g_register_infos_arm64_le)) + if (reg_num >= llvm::size(g_register_infos_arm64_le)) return false; reg_info = g_register_infos_arm64_le[reg_num]; return true; @@ -360,7 +360,7 @@ EmulateInstructionARM64::GetOpcodeForInstruction(const uint32_t opcode) { "TBNZ <R><t>, #<imm>, <label>"}, }; - static const size_t k_num_arm_opcodes = llvm::array_lengthof(g_opcodes); + static const size_t k_num_arm_opcodes = llvm::size(g_opcodes); for (size_t i = 0; i < k_num_arm_opcodes; ++i) { if ((g_opcodes[i].mask & opcode) == g_opcodes[i].value) diff --git a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp index 4ef0a03..fd5ac54 100644 --- a/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp +++ b/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp @@ -954,7 +954,7 @@ EmulateInstructionMIPS::GetOpcodeForInstruction(const char *op_name) { {"JALRS_MM", &EmulateInstructionMIPS::Emulate_JALRS, "JALRS rt, rs"}, }; - static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes); + static const size_t k_num_mips_opcodes = llvm::size(g_opcodes); for (size_t i = 0; i < k_num_mips_opcodes; ++i) { if (!strcasecmp(g_opcodes[i].op_name, op_name)) diff --git a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp index 26736f4..f9770cb 100644 --- a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp +++ b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp @@ -919,7 +919,7 @@ EmulateInstructionMIPS64::GetOpcodeForInstruction(const char *op_name) { {"BZ_V", &EmulateInstructionMIPS64::Emulate_BZV, "BZ.V wt,s16"}, }; - static const size_t k_num_mips_opcodes = llvm::array_lengthof(g_opcodes); + static const size_t k_num_mips_opcodes = llvm::size(g_opcodes); for (size_t i = 0; i < k_num_mips_opcodes; ++i) { if (!strcasecmp(g_opcodes[i].op_name, op_name)) diff --git a/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp b/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp index dcfad8e..292e909 100644 --- a/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp +++ b/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp @@ -59,7 +59,7 @@ bool EmulateInstructionPPC64::SetTargetTriple(const ArchSpec &arch) { } static bool LLDBTableGetRegisterInfo(uint32_t reg_num, RegisterInfo ®_info) { - if (reg_num >= llvm::array_lengthof(g_register_infos_ppc64le)) + if (reg_num >= llvm::size(g_register_infos_ppc64le)) return false; reg_info = g_register_infos_ppc64le[reg_num]; return true; @@ -147,7 +147,7 @@ EmulateInstructionPPC64::GetOpcodeForInstruction(uint32_t opcode) { "addi RT, RA, SI"}, {0xfc000003, 0xe8000000, &EmulateInstructionPPC64::EmulateLD, "ld RT, DS(RA)"}}; - static const size_t k_num_ppc_opcodes = llvm::array_lengthof(g_opcodes); + static const size_t k_num_ppc_opcodes = llvm::size(g_opcodes); for (size_t i = 0; i < k_num_ppc_opcodes; ++i) { if ((g_opcodes[i].mask & opcode) == g_opcodes[i].value) diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp index ff41f18..536869b 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp @@ -749,7 +749,7 @@ AppleObjCTrampolineHandler::AppleObjCTrampolineHandler( // array into a template table, and populate the DispatchFunction // map from there. - for (size_t i = 0; i != llvm::array_lengthof(g_dispatch_functions); i++) { + for (size_t i = 0; i != llvm::size(g_dispatch_functions); i++) { ConstString name_const_str(g_dispatch_functions[i].name); const Symbol *msgSend_symbol = m_objc_module_sp->FindFirstSymbolWithNameAndType(name_const_str, @@ -769,7 +769,7 @@ AppleObjCTrampolineHandler::AppleObjCTrampolineHandler( } // Similarly, cache the addresses of the "optimized dispatch" function. - for (size_t i = 0; i != llvm::array_lengthof(g_opt_dispatch_names); i++) { + for (size_t i = 0; i != llvm::size(g_opt_dispatch_names); i++) { ConstString name_const_str(g_opt_dispatch_names[i]); const Symbol *msgSend_symbol = m_objc_module_sp->FindFirstSymbolWithNameAndType(name_const_str, diff --git a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp index f69f3c3..71e2837 100644 --- a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp +++ b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp @@ -574,7 +574,7 @@ bool ObjectFilePECOFF::ParseSectionHeaders( } llvm::StringRef ObjectFilePECOFF::GetSectionName(const section_header_t §) { - llvm::StringRef hdr_name(sect.name, llvm::array_lengthof(sect.name)); + llvm::StringRef hdr_name(sect.name, llvm::size(sect.name)); hdr_name = hdr_name.split('\0').first; if (hdr_name.consume_front("/")) { lldb::offset_t stroff; diff --git a/lldb/source/Plugins/ObjectFile/PECOFF/PECallFrameInfo.cpp b/lldb/source/Plugins/ObjectFile/PECOFF/PECallFrameInfo.cpp index 522c9a6..ae66bfb 100644 --- a/lldb/source/Plugins/ObjectFile/PECOFF/PECallFrameInfo.cpp +++ b/lldb/source/Plugins/ObjectFile/PECOFF/PECallFrameInfo.cpp @@ -169,7 +169,7 @@ uint32_t EHProgramBuilder::ConvertMachineToLLDBRegister(uint8_t machine_reg) { lldb_r8_x86_64, lldb_r9_x86_64, lldb_r10_x86_64, lldb_r11_x86_64, lldb_r12_x86_64, lldb_r13_x86_64, lldb_r14_x86_64, lldb_r15_x86_64}; - if (machine_reg >= llvm::array_lengthof(machine_to_lldb_register)) + if (machine_reg >= llvm::size(machine_to_lldb_register)) return LLDB_INVALID_REGNUM; return machine_to_lldb_register[machine_reg]; @@ -184,7 +184,7 @@ uint32_t EHProgramBuilder::ConvertXMMToLLDBRegister(uint8_t xmm_reg) { lldb_xmm12_x86_64, lldb_xmm13_x86_64, lldb_xmm14_x86_64, lldb_xmm15_x86_64}; - if (xmm_reg >= llvm::array_lengthof(xmm_to_lldb_register)) + if (xmm_reg >= llvm::size(xmm_to_lldb_register)) return LLDB_INVALID_REGNUM; return xmm_to_lldb_register[xmm_reg]; diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp index 461a21f..733d1ee 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp @@ -686,7 +686,7 @@ BreakpointSP PlatformDarwin::SetThreadCreationBreakpoint(Target &target) { "libSystem.B.dylib"}; FileSpecList bp_modules; - for (size_t i = 0; i < llvm::array_lengthof(g_bp_modules); i++) { + for (size_t i = 0; i < llvm::size(g_bp_modules); i++) { const char *bp_module = g_bp_modules[i]; bp_modules.EmplaceBack(bp_module); } @@ -695,7 +695,7 @@ BreakpointSP PlatformDarwin::SetThreadCreationBreakpoint(Target &target) { bool hardware = false; LazyBool skip_prologue = eLazyBoolNo; bp_sp = target.CreateBreakpoint(&bp_modules, nullptr, g_bp_names, - llvm::array_lengthof(g_bp_names), + llvm::size(g_bp_names), eFunctionNameTypeFull, eLanguageTypeUnknown, 0, skip_prologue, internal, hardware); bp_sp->SetBreakpointKind("thread-creation"); diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp index e1d3b6e..598a552 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp @@ -856,7 +856,7 @@ static uint32_t g_exc_regnums[] = { exc_exception, exc_fsr, exc_far, }; -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos); +static size_t k_num_register_infos = llvm::size(g_register_infos); RegisterContextDarwin_arm::RegisterContextDarwin_arm( Thread &thread, uint32_t concrete_frame_idx) @@ -897,9 +897,9 @@ const RegisterInfo *RegisterContextDarwin_arm::GetRegisterInfos() { } // Number of registers in each register set -const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums); -const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums); -const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums); +const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums); +const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums); +const size_t k_num_exc_registers = llvm::size(g_exc_regnums); // Register set definitions. The first definitions at register set index of // zero is for all registers, followed by other registers sets. The register @@ -911,7 +911,7 @@ static const RegisterSet g_reg_sets[] = { {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums}, {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}}; -const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets); +const size_t k_num_regsets = llvm::size(g_reg_sets); size_t RegisterContextDarwin_arm::GetRegisterSetCount() { return k_num_regsets; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp index 50f710e..f23a116 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp @@ -91,7 +91,7 @@ static uint32_t g_fpu_regnums[] = { static uint32_t g_exc_regnums[] = {exc_far, exc_esr, exc_exception}; static size_t k_num_register_infos = - llvm::array_lengthof(g_register_infos_arm64_le); + llvm::size(g_register_infos_arm64_le); RegisterContextDarwin_arm64::RegisterContextDarwin_arm64( Thread &thread, uint32_t concrete_frame_idx) @@ -132,9 +132,9 @@ const RegisterInfo *RegisterContextDarwin_arm64::GetRegisterInfos() { } // Number of registers in each register set -const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums); -const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums); -const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums); +const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums); +const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums); +const size_t k_num_exc_registers = llvm::size(g_exc_regnums); // Register set definitions. The first definitions at register set index of // zero is for all registers, followed by other registers sets. The register @@ -146,7 +146,7 @@ static const RegisterSet g_reg_sets[] = { {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums}, {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}}; -const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets); +const size_t k_num_regsets = llvm::size(g_reg_sets); size_t RegisterContextDarwin_arm64::GetRegisterSetCount() { return k_num_regsets; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp index 5f56e6f..34c7b4f 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp @@ -363,7 +363,7 @@ static RegisterInfo g_register_infos[] = { nullptr, }}; -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos); +static size_t k_num_register_infos = llvm::size(g_register_infos); RegisterContextDarwin_i386::RegisterContextDarwin_i386( Thread &thread, uint32_t concrete_frame_idx) @@ -421,9 +421,9 @@ static uint32_t g_fpu_regnums[] = { static uint32_t g_exc_regnums[] = {exc_trapno, exc_err, exc_faultvaddr}; // Number of registers in each register set -const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums); -const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums); -const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums); +const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums); +const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums); +const size_t k_num_exc_registers = llvm::size(g_exc_regnums); // Register set definitions. The first definitions at register set index of // zero is for all registers, followed by other registers sets. The register @@ -435,7 +435,7 @@ static const RegisterSet g_reg_sets[] = { {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums}, {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}}; -const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets); +const size_t k_num_regsets = llvm::size(g_reg_sets); size_t RegisterContextDarwin_i386::GetRegisterSetCount() { return k_num_regsets; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp index 567df8f..1551281 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp @@ -420,7 +420,7 @@ static RegisterInfo g_register_infos[] = { nullptr, }}; -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos); +static size_t k_num_register_infos = llvm::size(g_register_infos); RegisterContextDarwin_x86_64::RegisterContextDarwin_x86_64( Thread &thread, uint32_t concrete_frame_idx) @@ -477,9 +477,9 @@ static uint32_t g_fpu_regnums[] = { static uint32_t g_exc_regnums[] = {exc_trapno, exc_err, exc_faultvaddr}; // Number of registers in each register set -const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums); -const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums); -const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums); +const size_t k_num_gpr_registers = llvm::size(g_gpr_regnums); +const size_t k_num_fpu_registers = llvm::size(g_fpu_regnums); +const size_t k_num_exc_registers = llvm::size(g_exc_regnums); // Register set definitions. The first definitions at register set index of // zero is for all registers, followed by other registers sets. The register @@ -491,7 +491,7 @@ static const RegisterSet g_reg_sets[] = { {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums}, {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}}; -const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets); +const size_t k_num_regsets = llvm::size(g_reg_sets); size_t RegisterContextDarwin_x86_64::GetRegisterSetCount() { return k_num_regsets; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp index 066d50d..cfd4d21 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp @@ -78,11 +78,11 @@ const RegisterInfo *RegisterContextWindows_i386::GetRegisterInfo() const { } uint32_t RegisterContextWindows_i386::GetRegisterCount() const { - return llvm::array_lengthof(g_register_infos_i386); + return llvm::size(g_register_infos_i386); } uint32_t RegisterContextWindows_i386::GetUserRegisterCount() const { - return llvm::array_lengthof(g_register_infos_i386); + return llvm::size(g_register_infos_i386); } size_t RegisterContextWindows_i386::GetGPRSize() const { return sizeof(GPR); } diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp index a35ccac..f0fd6fe 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp @@ -141,11 +141,11 @@ const RegisterInfo *RegisterContextWindows_x86_64::GetRegisterInfo() const { } uint32_t RegisterContextWindows_x86_64::GetRegisterCount() const { - return llvm::array_lengthof(g_register_infos_x86_64); + return llvm::size(g_register_infos_x86_64); } uint32_t RegisterContextWindows_x86_64::GetUserRegisterCount() const { - return llvm::array_lengthof(g_register_infos_x86_64); + return llvm::size(g_register_infos_x86_64); } size_t RegisterContextWindows_x86_64::GetGPRSize() const { return sizeof(GPR); } diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_WoW64.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_WoW64.cpp index d562c7d..ea4485e 100644 --- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_WoW64.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_WoW64.cpp @@ -38,7 +38,7 @@ static const uint32_t g_gpr_regnums_WoW64[] = { static const RegisterSet g_reg_sets_WoW64[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_regnums_WoW64) - 1, g_gpr_regnums_WoW64}, + llvm::size(g_gpr_regnums_WoW64) - 1, g_gpr_regnums_WoW64}, }; enum { k_num_register_sets = 1 }; diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp index 5cfd790..1707a10 100644 --- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp @@ -69,9 +69,9 @@ static_assert(((sizeof g_fpr_regnums_arm / sizeof g_fpr_regnums_arm[0]) - 1) == static const RegisterSet g_reg_sets_arm[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_regnums_arm) - 1, g_gpr_regnums_arm}, + llvm::size(g_gpr_regnums_arm) - 1, g_gpr_regnums_arm}, {"Floating Point Registers", "fpr", - llvm::array_lengthof(g_fpr_regnums_arm) - 1, g_fpr_regnums_arm}, + llvm::size(g_fpr_regnums_arm) - 1, g_fpr_regnums_arm}, }; enum { k_num_register_sets = 2 }; diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp index fc65945..792b2d5 100644 --- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp @@ -85,9 +85,9 @@ static_assert(((sizeof g_fpr_regnums_arm64 / sizeof g_fpr_regnums_arm64[0]) - static const RegisterSet g_reg_sets_arm64[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_regnums_arm64) - 1, g_gpr_regnums_arm64}, + llvm::size(g_gpr_regnums_arm64) - 1, g_gpr_regnums_arm64}, {"Floating Point Registers", "fpr", - llvm::array_lengthof(g_fpr_regnums_arm64) - 1, g_fpr_regnums_arm64}, + llvm::size(g_fpr_regnums_arm64) - 1, g_fpr_regnums_arm64}, }; enum { k_num_register_sets = 2 }; diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_i386.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_i386.cpp index 45da4cd..b0102e6 100644 --- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_i386.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_i386.cpp @@ -38,7 +38,7 @@ static const uint32_t g_gpr_regnums_i386[] = { static const RegisterSet g_reg_sets_i386[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_regnums_i386) - 1, g_gpr_regnums_i386}, + llvm::size(g_gpr_regnums_i386) - 1, g_gpr_regnums_i386}, }; enum { k_num_register_sets = 1 }; diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_x86_64.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_x86_64.cpp index 819cd8e..bf75649 100644 --- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_x86_64.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_x86_64.cpp @@ -49,9 +49,9 @@ static const uint32_t g_fpr_regnums_x86_64[] = { static const RegisterSet g_reg_sets_x86_64[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_regnums_x86_64) - 1, g_gpr_regnums_x86_64}, + llvm::size(g_gpr_regnums_x86_64) - 1, g_gpr_regnums_x86_64}, {"Floating Point Registers", "fpr", - llvm::array_lengthof(g_fpr_regnums_x86_64) - 1, g_fpr_regnums_x86_64}}; + llvm::size(g_fpr_regnums_x86_64) - 1, g_fpr_regnums_x86_64}}; enum { k_num_register_sets = 2 }; diff --git a/lldb/source/Plugins/Process/Windows/Common/arm/RegisterContextWindows_arm.cpp b/lldb/source/Plugins/Process/Windows/Common/arm/RegisterContextWindows_arm.cpp index 2dc678a..368b7fc 100644 --- a/lldb/source/Plugins/Process/Windows/Common/arm/RegisterContextWindows_arm.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/arm/RegisterContextWindows_arm.cpp @@ -41,7 +41,7 @@ using namespace lldb_private; #include "Plugins/Process/Utility/RegisterInfos_arm.h" #undef DECLARE_REGISTER_INFOS_ARM_STRUCT -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos_arm); +static size_t k_num_register_infos = llvm::size(g_register_infos_arm); // Array of lldb register numbers used to define the set of all General Purpose // Registers @@ -69,8 +69,8 @@ uint32_t g_fpu_reg_indices[] = { RegisterSet g_register_sets[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices}, - {"Floating Point Registers", "fpu", llvm::array_lengthof(g_fpu_reg_indices), + llvm::size(g_gpr_reg_indices), g_gpr_reg_indices}, + {"Floating Point Registers", "fpu", llvm::size(g_fpu_reg_indices), g_fpu_reg_indices}, }; @@ -82,7 +82,7 @@ RegisterContextWindows_arm::RegisterContextWindows_arm( RegisterContextWindows_arm::~RegisterContextWindows_arm() {} size_t RegisterContextWindows_arm::GetRegisterCount() { - return llvm::array_lengthof(g_register_infos_arm); + return llvm::size(g_register_infos_arm); } const RegisterInfo * @@ -93,7 +93,7 @@ RegisterContextWindows_arm::GetRegisterInfoAtIndex(size_t reg) { } size_t RegisterContextWindows_arm::GetRegisterSetCount() { - return llvm::array_lengthof(g_register_sets); + return llvm::size(g_register_sets); } const RegisterSet *RegisterContextWindows_arm::GetRegisterSet(size_t reg_set) { diff --git a/lldb/source/Plugins/Process/Windows/Common/arm64/RegisterContextWindows_arm64.cpp b/lldb/source/Plugins/Process/Windows/Common/arm64/RegisterContextWindows_arm64.cpp index 3ce2885..c57b4fb8 100644 --- a/lldb/source/Plugins/Process/Windows/Common/arm64/RegisterContextWindows_arm64.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/arm64/RegisterContextWindows_arm64.cpp @@ -45,7 +45,7 @@ using namespace lldb_private; #undef DECLARE_REGISTER_INFOS_ARM64_STRUCT static size_t k_num_register_infos = - llvm::array_lengthof(g_register_infos_arm64_le); + llvm::size(g_register_infos_arm64_le); // Array of lldb register numbers used to define the set of all General Purpose // Registers @@ -83,8 +83,8 @@ uint32_t g_fpu_reg_indices[] = { RegisterSet g_register_sets[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices}, - {"Floating Point Registers", "fpu", llvm::array_lengthof(g_fpu_reg_indices), + llvm::size(g_gpr_reg_indices), g_gpr_reg_indices}, + {"Floating Point Registers", "fpu", llvm::size(g_fpu_reg_indices), g_fpu_reg_indices}, }; @@ -96,7 +96,7 @@ RegisterContextWindows_arm64::RegisterContextWindows_arm64( RegisterContextWindows_arm64::~RegisterContextWindows_arm64() {} size_t RegisterContextWindows_arm64::GetRegisterCount() { - return llvm::array_lengthof(g_register_infos_arm64_le); + return llvm::size(g_register_infos_arm64_le); } const RegisterInfo * @@ -107,7 +107,7 @@ RegisterContextWindows_arm64::GetRegisterInfoAtIndex(size_t reg) { } size_t RegisterContextWindows_arm64::GetRegisterSetCount() { - return llvm::array_lengthof(g_register_sets); + return llvm::size(g_register_sets); } const RegisterSet * diff --git a/lldb/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp b/lldb/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp index 41e0d42..ed0b1b4 100644 --- a/lldb/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp @@ -212,7 +212,7 @@ RegisterInfo g_register_infos[] = { {DEFINE_FPU_XMM(xmm15)} }; -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos); +static size_t k_num_register_infos = llvm::size(g_register_infos); // Array of lldb register numbers used to define the set of all General Purpose // Registers @@ -235,9 +235,9 @@ uint32_t g_fpu_reg_indices[] = { RegisterSet g_register_sets[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices}, + llvm::size(g_gpr_reg_indices), g_gpr_reg_indices}, {"Floating Point Registers", "fpu", - llvm::array_lengthof(g_fpu_reg_indices), g_fpu_reg_indices}}; + llvm::size(g_fpu_reg_indices), g_fpu_reg_indices}}; } // Constructors and Destructors @@ -248,7 +248,7 @@ RegisterContextWindows_x64::RegisterContextWindows_x64( RegisterContextWindows_x64::~RegisterContextWindows_x64() {} size_t RegisterContextWindows_x64::GetRegisterCount() { - return llvm::array_lengthof(g_register_infos); + return llvm::size(g_register_infos); } const RegisterInfo * @@ -259,7 +259,7 @@ RegisterContextWindows_x64::GetRegisterInfoAtIndex(size_t reg) { } size_t RegisterContextWindows_x64::GetRegisterSetCount() { - return llvm::array_lengthof(g_register_sets); + return llvm::size(g_register_sets); } const RegisterSet *RegisterContextWindows_x64::GetRegisterSet(size_t reg_set) { diff --git a/lldb/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp b/lldb/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp index e4f1806..33c1257 100644 --- a/lldb/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp @@ -118,7 +118,7 @@ RegisterInfo g_register_infos[] = { nullptr, }, }; -static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos); +static size_t k_num_register_infos = llvm::size(g_register_infos); // Array of lldb register numbers used to define the set of all General Purpose // Registers @@ -130,7 +130,7 @@ uint32_t g_gpr_reg_indices[] = {eRegisterIndexEax, eRegisterIndexEbx, RegisterSet g_register_sets[] = { {"General Purpose Registers", "gpr", - llvm::array_lengthof(g_gpr_reg_indices), g_gpr_reg_indices}, + llvm::size(g_gpr_reg_indices), g_gpr_reg_indices}, }; } @@ -142,7 +142,7 @@ RegisterContextWindows_x86::RegisterContextWindows_x86( RegisterContextWindows_x86::~RegisterContextWindows_x86() {} size_t RegisterContextWindows_x86::GetRegisterCount() { - return llvm::array_lengthof(g_register_infos); + return llvm::size(g_register_infos); } const RegisterInfo * @@ -153,7 +153,7 @@ RegisterContextWindows_x86::GetRegisterInfoAtIndex(size_t reg) { } size_t RegisterContextWindows_x86::GetRegisterSetCount() { - return llvm::array_lengthof(g_register_sets); + return llvm::size(g_register_sets); } const RegisterSet *RegisterContextWindows_x86::GetRegisterSet(size_t reg_set) { diff --git a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp index 7184dba..a6eef5d 100644 --- a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp +++ b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp @@ -336,7 +336,7 @@ static RegisterInfo g_reg_infos[] = { DEF_Q(14), DEF_Q(15)}; -constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos); +constexpr size_t k_num_reg_infos = llvm::size(g_reg_infos); // ARM general purpose registers. const uint32_t g_gpr_regnums[] = { @@ -445,26 +445,26 @@ const uint32_t g_fpu_regnums[] = { }; // Skip the last LLDB_INVALID_REGNUM in each count below by subtracting 1 -constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1; -constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1; +constexpr size_t k_num_gpr_regs = llvm::size(g_gpr_regnums) - 1; +constexpr size_t k_num_fpu_regs = llvm::size(g_fpu_regnums) - 1; static RegisterSet g_reg_sets[] = { {"General Purpose Registers", "gpr", k_num_gpr_regs, g_gpr_regnums}, {"Floating Point Registers", "fpu", k_num_fpu_regs, g_fpu_regnums}, }; -constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets); +constexpr size_t k_num_reg_sets = llvm::size(g_reg_sets); RegisterContextMinidump_ARM::RegisterContextMinidump_ARM( lldb_private::Thread &thread, const DataExtractor &data, bool apple) : RegisterContext(thread, 0), m_apple(apple) { lldb::offset_t offset = 0; m_regs.context_flags = data.GetU32(&offset); - for (unsigned i = 0; i < llvm::array_lengthof(m_regs.r); ++i) + for (unsigned i = 0; i < llvm::size(m_regs.r); ++i) m_regs.r[i] = data.GetU32(&offset); m_regs.cpsr = data.GetU32(&offset); m_regs.fpscr = data.GetU64(&offset); - for (unsigned i = 0; i < llvm::array_lengthof(m_regs.d); ++i) + for (unsigned i = 0; i < llvm::size(m_regs.d); ++i) m_regs.d[i] = data.GetU64(&offset); lldbassert(k_num_regs == k_num_reg_infos); } diff --git a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp index e606ec9..d139d68 100644 --- a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp +++ b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp @@ -544,7 +544,7 @@ static RegisterInfo g_reg_infos[] = { DEF_H(31), }; -constexpr size_t k_num_reg_infos = llvm::array_lengthof(g_reg_infos); +constexpr size_t k_num_reg_infos = llvm::size(g_reg_infos); // ARM64 general purpose registers. const uint32_t g_gpr_regnums[] = { @@ -751,15 +751,15 @@ const uint32_t g_fpu_regnums[] = { }; // Skip the last LLDB_INVALID_REGNUM in each count below by subtracting 1 -constexpr size_t k_num_gpr_regs = llvm::array_lengthof(g_gpr_regnums) - 1; -constexpr size_t k_num_fpu_regs = llvm::array_lengthof(g_fpu_regnums) - 1; +constexpr size_t k_num_gpr_regs = llvm::size(g_gpr_regnums) - 1; +constexpr size_t k_num_fpu_regs = llvm::size(g_fpu_regnums) - 1; static RegisterSet g_reg_sets[] = { {"General Purpose Registers", "gpr", k_num_gpr_regs, g_gpr_regnums}, {"Floating Point Registers", "fpu", k_num_fpu_regs, g_fpu_regnums}, }; -constexpr size_t k_num_reg_sets = llvm::array_lengthof(g_reg_sets); +constexpr size_t k_num_reg_sets = llvm::size(g_reg_sets); RegisterContextMinidump_ARM64::RegisterContextMinidump_ARM64( lldb_private::Thread &thread, const DataExtractor &data) diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp index 74a4370..de63568 100644 --- a/lldb/source/Utility/ArchSpec.cpp +++ b/lldb/source/Utility/ArchSpec.cpp @@ -254,12 +254,12 @@ struct ArchDefinition { }; void ArchSpec::ListSupportedArchNames(StringList &list) { - for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) + for (uint32_t i = 0; i < llvm::size(g_core_definitions); ++i) list.AppendString(g_core_definitions[i].name); } void ArchSpec::AutoComplete(CompletionRequest &request) { - for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) + for (uint32_t i = 0; i < llvm::size(g_core_definitions); ++i) request.TryCompleteCurrentArg(g_core_definitions[i].name); } @@ -340,7 +340,7 @@ static const ArchDefinitionEntry g_macho_arch_entries[] = { // clang-format on static const ArchDefinition g_macho_arch_def = { - eArchTypeMachO, llvm::array_lengthof(g_macho_arch_entries), + eArchTypeMachO, llvm::size(g_macho_arch_entries), g_macho_arch_entries, "mach-o"}; //===----------------------------------------------------------------------===// @@ -409,7 +409,7 @@ static const ArchDefinitionEntry g_elf_arch_entries[] = { static const ArchDefinition g_elf_arch_def = { eArchTypeELF, - llvm::array_lengthof(g_elf_arch_entries), + llvm::size(g_elf_arch_entries), g_elf_arch_entries, "elf", }; @@ -435,7 +435,7 @@ static const ArchDefinitionEntry g_coff_arch_entries[] = { static const ArchDefinition g_coff_arch_def = { eArchTypeCOFF, - llvm::array_lengthof(g_coff_arch_entries), + llvm::size(g_coff_arch_entries), g_coff_arch_entries, "pe-coff", }; @@ -446,7 +446,7 @@ static const ArchDefinition *g_arch_definitions[] = { &g_macho_arch_def, &g_elf_arch_def, &g_coff_arch_def}; static const size_t k_num_arch_definitions = - llvm::array_lengthof(g_arch_definitions); + llvm::size(g_arch_definitions); //===----------------------------------------------------------------------===// // Static helper functions. @@ -463,7 +463,7 @@ static const ArchDefinition *FindArchDefinition(ArchitectureType arch_type) { // Get an architecture definition by name. static const CoreDefinition *FindCoreDefinition(llvm::StringRef name) { - for (unsigned int i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) { + for (unsigned int i = 0; i < llvm::size(g_core_definitions); ++i) { if (name.equals_insensitive(g_core_definitions[i].name)) return &g_core_definitions[i]; } @@ -471,7 +471,7 @@ static const CoreDefinition *FindCoreDefinition(llvm::StringRef name) { } static inline const CoreDefinition *FindCoreDefinition(ArchSpec::Core core) { - if (core < llvm::array_lengthof(g_core_definitions)) + if (core < llvm::size(g_core_definitions)) return &g_core_definitions[core]; return nullptr; } diff --git a/lldb/unittests/Utility/StatusTest.cpp b/lldb/unittests/Utility/StatusTest.cpp index 9b9d870..f6bc110 100644 --- a/lldb/unittests/Utility/StatusTest.cpp +++ b/lldb/unittests/Utility/StatusTest.cpp @@ -72,7 +72,7 @@ TEST(StatusTest, ErrorWin32) { EXPECT_TRUE(success.Success()); WCHAR name[128]{}; - ULONG nameLen = llvm::array_lengthof(name); + ULONG nameLen = llvm::size(name); ULONG langs = 0; GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &langs, reinterpret_cast<PZZWSTR>(&name), &nameLen); diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index c3200c9..b0a8a43 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -1430,12 +1430,6 @@ void shuffle(Iterator first, Iterator last, RNG &&g) { } } -/// Find the length of an array. -template <class T, std::size_t N> -constexpr inline size_t array_lengthof(T (&)[N]) { - return N; -} - /// Adapt std::less<T> for array_pod_sort. template<typename T> inline int array_pod_sort_comparator(const void *P1, const void *P2) { diff --git a/llvm/include/llvm/ADT/STLForwardCompat.h b/llvm/include/llvm/ADT/STLForwardCompat.h index 440b29d..49e9623 100644 --- a/llvm/include/llvm/ADT/STLForwardCompat.h +++ b/llvm/include/llvm/ADT/STLForwardCompat.h @@ -63,6 +63,16 @@ struct in_place_index_t // NOLINT(readability-identifier-naming) explicit in_place_index_t() = default; }; +template <class C> +constexpr auto size(const C& c) -> decltype(c.size()) { // NOLINT(readability-identifier-naming) + return c.size(); +} + +template <class T, std::size_t N> +constexpr std::size_t size(const T (&array)[N]) noexcept { // NOLINT(readability-identifier-naming) + return N; +} + //===----------------------------------------------------------------------===// // Features from C++20 //===----------------------------------------------------------------------===// diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h index bec1915..792b3eb 100644 --- a/llvm/include/llvm/CodeGen/TargetLowering.h +++ b/llvm/include/llvm/CodeGen/TargetLowering.h @@ -924,7 +924,7 @@ public: /// promotions or expansions. bool isTypeLegal(EVT VT) const { assert(!VT.isSimple() || - (unsigned)VT.getSimpleVT().SimpleTy < array_lengthof(RegClassForVT)); + (unsigned)VT.getSimpleVT().SimpleTy < size(RegClassForVT)); return VT.isSimple() && RegClassForVT[VT.getSimpleVT().SimpleTy] != nullptr; } @@ -1078,7 +1078,7 @@ public: if (VT.isExtended()) return Expand; // If a target-specific SDNode requires legalization, require the target // to provide custom legalization for it. - if (Op >= array_lengthof(OpActions[0])) return Custom; + if (Op >= size(OpActions[0])) return Custom; return OpActions[(unsigned)VT.getSimpleVT().SimpleTy][Op]; } @@ -1379,8 +1379,8 @@ public: /// expander for it. LegalizeAction getCondCodeAction(ISD::CondCode CC, MVT VT) const { - assert((unsigned)CC < array_lengthof(CondCodeActions) && - ((unsigned)VT.SimpleTy >> 3) < array_lengthof(CondCodeActions[0]) && + assert((unsigned)CC < size(CondCodeActions) && + ((unsigned)VT.SimpleTy >> 3) < size(CondCodeActions[0]) && "Table isn't big enough!"); // See setCondCodeAction for how this is encoded. uint32_t Shift = 4 * (VT.SimpleTy & 0x7); @@ -1488,7 +1488,7 @@ public: /// Return the type of registers that this ValueType will eventually require. MVT getRegisterType(MVT VT) const { - assert((unsigned)VT.SimpleTy < array_lengthof(RegisterTypeForVT)); + assert((unsigned)VT.SimpleTy < size(RegisterTypeForVT)); return RegisterTypeForVT[VT.SimpleTy]; } @@ -1496,7 +1496,7 @@ public: MVT getRegisterType(LLVMContext &Context, EVT VT) const { if (VT.isSimple()) { assert((unsigned)VT.getSimpleVT().SimpleTy < - array_lengthof(RegisterTypeForVT)); + size(RegisterTypeForVT)); return RegisterTypeForVT[VT.getSimpleVT().SimpleTy]; } if (VT.isVector()) { @@ -1529,7 +1529,7 @@ public: Optional<MVT> RegisterVT = None) const { if (VT.isSimple()) { assert((unsigned)VT.getSimpleVT().SimpleTy < - array_lengthof(NumRegistersForVT)); + size(NumRegistersForVT)); return NumRegistersForVT[VT.getSimpleVT().SimpleTy]; } if (VT.isVector()) { @@ -1597,7 +1597,7 @@ public: /// If true, the target has custom DAG combine transformations that it can /// perform for the specified node. bool hasTargetDAGCombine(ISD::NodeType NT) const { - assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray)); + assert(unsigned(NT >> 3) < size(TargetDAGCombineArray)); return TargetDAGCombineArray[NT >> 3] & (1 << (NT&7)); } @@ -2212,7 +2212,7 @@ protected: /// specified value type. This indicates the selector can handle values of /// that class natively. void addRegisterClass(MVT VT, const TargetRegisterClass *RC) { - assert((unsigned)VT.SimpleTy < array_lengthof(RegClassForVT)); + assert((unsigned)VT.SimpleTy < size(RegClassForVT)); RegClassForVT[VT.SimpleTy] = RC; } @@ -2229,7 +2229,7 @@ protected: /// type and indicate what to do about it. Note that VT may refer to either /// the type of a result or that of an operand of Op. void setOperationAction(unsigned Op, MVT VT, LegalizeAction Action) { - assert(Op < array_lengthof(OpActions[0]) && "Table isn't big enough!"); + assert(Op < size(OpActions[0]) && "Table isn't big enough!"); OpActions[(unsigned)VT.SimpleTy][Op] = Action; } @@ -2294,7 +2294,7 @@ protected: /// target and indicate what to do about it. void setCondCodeAction(ISD::CondCode CC, MVT VT, LegalizeAction Action) { - assert(VT.isValid() && (unsigned)CC < array_lengthof(CondCodeActions) && + assert(VT.isValid() && (unsigned)CC < size(CondCodeActions) && "Table isn't big enough!"); assert((unsigned)Action < 0x10 && "too many bits for bitfield array"); /// The lower 3 bits of the SimpleTy index into Nth 4bit set from the 32-bit @@ -2324,7 +2324,7 @@ protected: /// they want to provide a custom DAG combiner for by implementing the /// PerformDAGCombine virtual method. void setTargetDAGCombine(ISD::NodeType NT) { - assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray)); + assert(unsigned(NT >> 3) < size(TargetDAGCombineArray)); TargetDAGCombineArray[NT >> 3] |= 1 << (NT&7); } diff --git a/llvm/include/llvm/MC/SubtargetFeature.h b/llvm/include/llvm/MC/SubtargetFeature.h index 032e2a7..6eb6c13 100644 --- a/llvm/include/llvm/MC/SubtargetFeature.h +++ b/llvm/include/llvm/MC/SubtargetFeature.h @@ -104,7 +104,7 @@ public: } constexpr FeatureBitset &operator^=(const FeatureBitset &RHS) { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) { + for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) { Bits[I] ^= RHS.Bits[I]; } return *this; @@ -116,7 +116,7 @@ public: } constexpr FeatureBitset &operator&=(const FeatureBitset &RHS) { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) { + for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) { Bits[I] &= RHS.Bits[I]; } return *this; @@ -128,7 +128,7 @@ public: } constexpr FeatureBitset &operator|=(const FeatureBitset &RHS) { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) { + for (unsigned I = 0, E = llvm::size(Bits); I != E; ++I) { Bits[I] |= RHS.Bits[I]; } return *this; diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index 37bc8a6..5d43a95 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -4329,7 +4329,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle( // The input vector this mask element indexes into. unsigned Input = (unsigned)Idx / NewElts; - if (Input >= array_lengthof(Inputs)) { + if (Input >= size(Inputs)) { // The mask element does not index into any input vector. Ops.push_back(-1); continue; @@ -4340,7 +4340,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle( // Find or create a shuffle vector operand to hold this input. unsigned OpNo; - for (OpNo = 0; OpNo < array_lengthof(InputUsed); ++OpNo) { + for (OpNo = 0; OpNo < size(InputUsed); ++OpNo) { if (InputUsed[OpNo] == Input) { // This input vector is already an operand. break; @@ -4351,7 +4351,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle( } } - if (OpNo >= array_lengthof(InputUsed)) { + if (OpNo >= size(InputUsed)) { // More than two input vectors used! Give up on trying to create a // shuffle vector. Insert all elements into a BUILD_VECTOR instead. UseBuildVector = true; @@ -4374,7 +4374,7 @@ LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle( // The input vector this mask element indexes into. unsigned Input = (unsigned)Idx / NewElts; - if (Input >= array_lengthof(Inputs)) { + if (Input >= size(Inputs)) { // The mask element is "undef" or indexes off the end of the input. SVOps.push_back(MIRBuilder.buildUndef(EltTy).getReg(0)); continue; diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index 0bd44ce..997f1de 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -2153,7 +2153,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N, // The input vector this mask element indexes into. unsigned Input = (unsigned)Idx / NewElts; - if (Input >= array_lengthof(Inputs)) { + if (Input >= size(Inputs)) { // The mask element does not index into any input vector. Ops.push_back(-1); continue; @@ -2164,7 +2164,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N, // Find or create a shuffle vector operand to hold this input. unsigned OpNo; - for (OpNo = 0; OpNo < array_lengthof(InputUsed); ++OpNo) { + for (OpNo = 0; OpNo < size(InputUsed); ++OpNo) { if (InputUsed[OpNo] == Input) { // This input vector is already an operand. break; @@ -2175,7 +2175,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N, } } - if (OpNo >= array_lengthof(InputUsed)) { + if (OpNo >= size(InputUsed)) { // More than two input vectors used! Give up on trying to create a // shuffle vector. Insert all elements into a BUILD_VECTOR instead. useBuildVector = true; @@ -2198,7 +2198,7 @@ void DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N, // The input vector this mask element indexes into. unsigned Input = (unsigned)Idx / NewElts; - if (Input >= array_lengthof(Inputs)) { + if (Input >= size(Inputs)) { // The mask element is "undef" or indexes off the end of the input. SVOps.push_back(DAG.getUNDEF(EltVT)); continue; diff --git a/llvm/lib/CodeGen/TargetLoweringBase.cpp b/llvm/lib/CodeGen/TargetLoweringBase.cpp index ab57423..f34a917 100644 --- a/llvm/lib/CodeGen/TargetLoweringBase.cpp +++ b/llvm/lib/CodeGen/TargetLoweringBase.cpp @@ -966,7 +966,7 @@ TargetLoweringBase::getTypeConversion(LLVMContext &Context, EVT VT) const { // If this is a simple type, use the ComputeRegisterProp mechanism. if (VT.isSimple()) { MVT SVT = VT.getSimpleVT(); - assert((unsigned)SVT.SimpleTy < array_lengthof(TransformToType)); + assert((unsigned)SVT.SimpleTy < size(TransformToType)); MVT NVT = TransformToType[SVT.SimpleTy]; LegalizeTypeAction LA = ValueTypeActions.getTypeAction(SVT); diff --git a/llvm/lib/DWP/DWP.cpp b/llvm/lib/DWP/DWP.cpp index f6538c0..fd6ab9f 100644 --- a/llvm/lib/DWP/DWP.cpp +++ b/llvm/lib/DWP/DWP.cpp @@ -394,7 +394,7 @@ void writeIndexTable( const MapVector<uint64_t, UnitIndexEntry> &IndexEntries, uint32_t DWARFUnitIndex::Entry::SectionContribution::*Field) { for (const auto &E : IndexEntries) - for (size_t I = 0; I != array_lengthof(E.second.Contributions); ++I) + for (size_t I = 0; I != size(E.second.Contributions); ++I) if (ContributionOffsets[I]) Out.emitIntValue(E.second.Contributions[I].*Field, 4); } diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp index b20e581..dc6197a 100644 --- a/llvm/lib/IR/DebugInfoMetadata.cpp +++ b/llvm/lib/IR/DebugInfoMetadata.cpp @@ -326,14 +326,14 @@ void GenericDINode::recalculateHash() { } \ } while (false) #define DEFINE_GETIMPL_STORE(CLASS, ARGS, OPS) \ - return storeImpl(new (array_lengthof(OPS)) \ + return storeImpl(new (size(OPS)) \ CLASS(Context, Storage, UNWRAP_ARGS(ARGS), OPS), \ Storage, Context.pImpl->CLASS##s) #define DEFINE_GETIMPL_STORE_NO_OPS(CLASS, ARGS) \ return storeImpl(new (0u) CLASS(Context, Storage, UNWRAP_ARGS(ARGS)), \ Storage, Context.pImpl->CLASS##s) #define DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(CLASS, OPS) \ - return storeImpl(new (array_lengthof(OPS)) CLASS(Context, Storage, OPS), \ + return storeImpl(new (size(OPS)) CLASS(Context, Storage, OPS), \ Storage, Context.pImpl->CLASS##s) #define DEFINE_GETIMPL_STORE_N(CLASS, ARGS, OPS, NUM_OPS) \ return storeImpl(new (NUM_OPS) \ @@ -772,7 +772,7 @@ DICompileUnit *DICompileUnit::getImpl( Macros, SysRoot, SDK}; - return storeImpl(new (array_lengthof(Ops)) DICompileUnit( + return storeImpl(new (size(Ops)) DICompileUnit( Context, Storage, SourceLanguage, IsOptimized, RuntimeVersion, EmissionKind, DWOId, SplitDebugInlining, DebugInfoForProfiling, NameTableKind, RangesBaseAddress, diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp index 7989dd5..8bf0e76 100644 --- a/llvm/lib/MC/MCAsmBackend.cpp +++ b/llvm/lib/MC/MCAsmBackend.cpp @@ -97,7 +97,7 @@ const MCFixupKindInfo &MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { {"FK_SecRel_8", 0, 64, 0}, }; - assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind"); + assert((size_t)Kind <= size(Builtins) && "Unknown fixup kind"); return Builtins[Kind]; } diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index 2cb5a00..cd6b532 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -306,7 +306,7 @@ MCDwarfLineTableHeader::Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params, 0, // length of DW_LNS_set_epilogue_begin 1 // DW_LNS_set_isa }; - assert(array_lengthof(StandardOpcodeLengths) >= + assert(size(StandardOpcodeLengths) >= (Params.DWARF2LineOpcodeBase - 1U)); return Emit( MCOS, Params, diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 42e2575..96e1fb1 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -2288,7 +2288,7 @@ void MachOObjectFile::getRelocationTypeName( "ARM64_RELOC_ADDEND" }; - if (RType >= array_lengthof(Table)) + if (RType >= size(Table)) res = "Unknown"; else res = Table[RType]; diff --git a/llvm/lib/Support/ARMAttributeParser.cpp b/llvm/lib/Support/ARMAttributeParser.cpp index 908e563..f9185a5 100644 --- a/llvm/lib/Support/ARMAttributeParser.cpp +++ b/llvm/lib/Support/ARMAttributeParser.cpp @@ -211,7 +211,7 @@ Error ARMAttributeParser::ABI_align_needed(AttrType tag) { uint64_t value = de.getULEB128(cursor); std::string description; - if (value < array_lengthof(strings)) + if (value < size(strings)) description = strings[value]; else if (value <= 12) description = "8-byte alignment, " + utostr(1ULL << value) + @@ -230,7 +230,7 @@ Error ARMAttributeParser::ABI_align_preserved(AttrType tag) { uint64_t value = de.getULEB128(cursor); std::string description; - if (value < array_lengthof(strings)) + if (value < size(strings)) description = std::string(strings[value]); else if (value <= 12) description = std::string("8-byte stack alignment, ") + @@ -382,7 +382,7 @@ Error ARMAttributeParser::nodefaults(AttrType tag) { Error ARMAttributeParser::handler(uint64_t tag, bool &handled) { handled = false; - for (unsigned AHI = 0, AHE = array_lengthof(displayRoutines); AHI != AHE; + for (unsigned AHI = 0, AHE = size(displayRoutines); AHI != AHE; ++AHI) { if (uint64_t(displayRoutines[AHI].attribute) == tag) { if (Error e = diff --git a/llvm/lib/Support/CrashRecoveryContext.cpp b/llvm/lib/Support/CrashRecoveryContext.cpp index 2ee3074..b55e8a5 100644 --- a/llvm/lib/Support/CrashRecoveryContext.cpp +++ b/llvm/lib/Support/CrashRecoveryContext.cpp @@ -348,7 +348,7 @@ static void uninstallExceptionOrSignalHandlers() { static const int Signals[] = { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP }; -static const unsigned NumSignals = array_lengthof(Signals); +static const unsigned NumSignals = size(Signals); static struct sigaction PrevActions[NumSignals]; static void CrashRecoverySignalHandler(int Signal) { diff --git a/llvm/lib/Support/NativeFormatting.cpp b/llvm/lib/Support/NativeFormatting.cpp index 0a79704..fc7199e 100644 --- a/llvm/lib/Support/NativeFormatting.cpp +++ b/llvm/lib/Support/NativeFormatting.cpp @@ -145,7 +145,7 @@ void llvm::write_hex(raw_ostream &S, uint64_t N, HexPrintStyle Style, std::max(static_cast<unsigned>(W), std::max(1u, Nibbles) + PrefixChars); char NumberBuffer[kMaxWidth]; - ::memset(NumberBuffer, '0', llvm::array_lengthof(NumberBuffer)); + ::memset(NumberBuffer, '0', llvm::size(NumberBuffer)); if (Prefix) NumberBuffer[1] = 'x'; char *EndPtr = NumberBuffer + NumChars; diff --git a/llvm/lib/Support/RISCVAttributeParser.cpp b/llvm/lib/Support/RISCVAttributeParser.cpp index 393861c..7629719 100644 --- a/llvm/lib/Support/RISCVAttributeParser.cpp +++ b/llvm/lib/Support/RISCVAttributeParser.cpp @@ -53,7 +53,7 @@ Error RISCVAttributeParser::stackAlign(unsigned tag) { Error RISCVAttributeParser::handler(uint64_t tag, bool &handled) { handled = false; - for (unsigned AHI = 0, AHE = array_lengthof(displayRoutines); AHI != AHE; + for (unsigned AHI = 0, AHE = size(displayRoutines); AHI != AHE; ++AHI) { if (uint64_t(displayRoutines[AHI].attribute) == tag) { if (Error e = (this->*displayRoutines[AHI].routine)(tag)) diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp index 20dea8c..925ff1b 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -898,13 +898,13 @@ std::string Triple::normalize(StringRef Str) { // If they are not there already, permute the components into their canonical // positions by seeing if they parse as a valid architecture, and if so moving // the component to the architecture position etc. - for (unsigned Pos = 0; Pos != array_lengthof(Found); ++Pos) { + for (unsigned Pos = 0; Pos != size(Found); ++Pos) { if (Found[Pos]) continue; // Already in the canonical position. for (unsigned Idx = 0; Idx != Components.size(); ++Idx) { // Do not reparse any components that already matched. - if (Idx < array_lengthof(Found) && Found[Idx]) + if (Idx < size(Found) && Found[Idx]) continue; // Does this component parse as valid for the target position? @@ -952,7 +952,7 @@ std::string Triple::normalize(StringRef Str) { // components to the right. for (unsigned i = Pos; !CurrentComponent.empty(); ++i) { // Skip over any fixed components. - while (i < array_lengthof(Found) && Found[i]) + while (i < size(Found) && Found[i]) ++i; // Place the component at the new position, getting the component // that was at this position - it will be moved right. @@ -973,7 +973,7 @@ std::string Triple::normalize(StringRef Str) { if (CurrentComponent.empty()) break; // Advance to the next component, skipping any fixed components. - while (++i < array_lengthof(Found) && Found[i]) + while (++i < size(Found) && Found[i]) ; } // The last component was pushed off the end - append it. @@ -981,7 +981,7 @@ std::string Triple::normalize(StringRef Str) { Components.push_back(CurrentComponent); // Advance Idx to the component's new position. - while (++Idx < array_lengthof(Found) && Found[Idx]) + while (++Idx < size(Found) && Found[Idx]) ; } while (Idx < Pos); // Add more until the final position is reached. } diff --git a/llvm/lib/Support/Unix/Signals.inc b/llvm/lib/Support/Unix/Signals.inc index 575e2aa..29176e3 100644 --- a/llvm/lib/Support/Unix/Signals.inc +++ b/llvm/lib/Support/Unix/Signals.inc @@ -239,8 +239,8 @@ static const int InfoSigs[] = { }; static const size_t NumSigs = - array_lengthof(IntSigs) + array_lengthof(KillSigs) + - array_lengthof(InfoSigs) + 1 /* SIGPIPE */; + size(IntSigs) + size(KillSigs) + + size(InfoSigs) + 1 /* SIGPIPE */; static std::atomic<unsigned> NumRegisteredSignals = ATOMIC_VAR_INIT(0); @@ -298,7 +298,7 @@ static void RegisterHandlers() { // Not signal-safe. enum class SignalKind { IsKill, IsInfo }; auto registerHandler = [&](int Signal, SignalKind Kind) { unsigned Index = NumRegisteredSignals.load(); - assert(Index < array_lengthof(RegisteredSignalInfo) && + assert(Index < size(RegisteredSignalInfo) && "Out of space for signal handlers!"); struct sigaction NewHandler; @@ -562,13 +562,13 @@ void llvm::sys::PrintStackTrace(raw_ostream &OS, int Depth) { #if defined(HAVE_BACKTRACE) // Use backtrace() to output a backtrace on Linux systems with glibc. if (!depth) - depth = backtrace(StackTrace, static_cast<int>(array_lengthof(StackTrace))); + depth = backtrace(StackTrace, static_cast<int>(size(StackTrace))); #endif #if defined(HAVE__UNWIND_BACKTRACE) // Try _Unwind_Backtrace() if backtrace() failed. if (!depth) depth = unwindBacktrace(StackTrace, - static_cast<int>(array_lengthof(StackTrace))); + static_cast<int>(size(StackTrace))); #endif if (!depth) return; diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 5f1a364..544b915 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -687,7 +687,7 @@ static bool isReservedName(StringRef path) { return true; // Then compare against the list of ancient reserved names. - for (size_t i = 0; i < array_lengthof(sReservedNames); ++i) { + for (size_t i = 0; i < size(sReservedNames); ++i) { if (path.equals_insensitive(sReservedNames[i])) return true; } diff --git a/llvm/lib/Support/Windows/Signals.inc b/llvm/lib/Support/Windows/Signals.inc index 32186bb..c05b743 100644 --- a/llvm/lib/Support/Windows/Signals.inc +++ b/llvm/lib/Support/Windows/Signals.inc @@ -242,7 +242,7 @@ static bool printStackTraceWithLLVMSymbolizer(llvm::raw_ostream &OS, if (StackFrame.AddrFrame.Offset == 0) break; StackTrace[Depth++] = (void *)(uintptr_t)StackFrame.AddrPC.Offset; - if (Depth >= array_lengthof(StackTrace)) + if (Depth >= size(StackTrace)) break; } diff --git a/llvm/lib/Support/X86TargetParser.cpp b/llvm/lib/Support/X86TargetParser.cpp index 10f9692..4c3013a 100644 --- a/llvm/lib/Support/X86TargetParser.cpp +++ b/llvm/lib/Support/X86TargetParser.cpp @@ -54,7 +54,7 @@ public: } constexpr FeatureBitset &operator&=(const FeatureBitset &RHS) { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) { + for (unsigned I = 0, E = size(Bits); I != E; ++I) { // GCC <6.2 crashes if this is written in a single statement. uint32_t NewBits = Bits[I] & RHS.Bits[I]; Bits[I] = NewBits; @@ -63,7 +63,7 @@ public: } constexpr FeatureBitset &operator|=(const FeatureBitset &RHS) { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) { + for (unsigned I = 0, E = size(Bits); I != E; ++I) { // GCC <6.2 crashes if this is written in a single statement. uint32_t NewBits = Bits[I] | RHS.Bits[I]; Bits[I] = NewBits; @@ -74,7 +74,7 @@ public: // gcc 5.3 miscompiles this if we try to write this using operator&=. constexpr FeatureBitset operator&(const FeatureBitset &RHS) const { FeatureBitset Result; - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) + for (unsigned I = 0, E = size(Bits); I != E; ++I) Result.Bits[I] = Bits[I] & RHS.Bits[I]; return Result; } @@ -82,20 +82,20 @@ public: // gcc 5.3 miscompiles this if we try to write this using operator&=. constexpr FeatureBitset operator|(const FeatureBitset &RHS) const { FeatureBitset Result; - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) + for (unsigned I = 0, E = size(Bits); I != E; ++I) Result.Bits[I] = Bits[I] | RHS.Bits[I]; return Result; } constexpr FeatureBitset operator~() const { FeatureBitset Result; - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) + for (unsigned I = 0, E = size(Bits); I != E; ++I) Result.Bits[I] = ~Bits[I]; return Result; } constexpr bool operator!=(const FeatureBitset &RHS) const { - for (unsigned I = 0, E = array_lengthof(Bits); I != E; ++I) + for (unsigned I = 0, E = size(Bits); I != E; ++I) if (Bits[I] != RHS.Bits[I]) return true; return false; @@ -690,7 +690,7 @@ unsigned llvm::X86::getFeaturePriority(ProcessorFeatures Feat) { #include "llvm/Support/X86TargetParser.def" std::numeric_limits<unsigned>::max() // Need to consume last comma. }; - std::array<unsigned, array_lengthof(Priorities) - 1> HelperList; + std::array<unsigned, size(Priorities) - 1> HelperList; std::iota(HelperList.begin(), HelperList.end(), 0); assert(std::is_permutation(HelperList.begin(), HelperList.end(), std::begin(Priorities), diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp index e4b747b..96e7466 100644 --- a/llvm/lib/Support/raw_ostream.cpp +++ b/llvm/lib/Support/raw_ostream.cpp @@ -480,12 +480,12 @@ static raw_ostream &write_padding(raw_ostream &OS, unsigned NumChars) { C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C}; // Usually the indentation is small, handle it with a fastpath. - if (NumChars < array_lengthof(Chars)) + if (NumChars < size(Chars)) return OS.write(Chars, NumChars); while (NumChars) { unsigned NumToWrite = std::min(NumChars, - (unsigned)array_lengthof(Chars)-1); + (unsigned)size(Chars)-1); OS.write(Chars, NumToWrite); NumChars -= NumToWrite; } diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp index cce714e..13dfea3 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -5640,7 +5640,7 @@ void AArch64TargetLowering::saveVarArgRegisters(CCState &CCInfo, static const MCPhysReg GPRArgRegs[] = { AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7 }; - static const unsigned NumGPRArgRegs = array_lengthof(GPRArgRegs); + static const unsigned NumGPRArgRegs = size(GPRArgRegs); unsigned FirstVariadicGPR = CCInfo.getFirstUnallocated(GPRArgRegs); unsigned GPRSaveSize = 8 * (NumGPRArgRegs - FirstVariadicGPR); @@ -5676,7 +5676,7 @@ void AArch64TargetLowering::saveVarArgRegisters(CCState &CCInfo, static const MCPhysReg FPRArgRegs[] = { AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3, AArch64::Q4, AArch64::Q5, AArch64::Q6, AArch64::Q7}; - static const unsigned NumFPRArgRegs = array_lengthof(FPRArgRegs); + static const unsigned NumFPRArgRegs = size(FPRArgRegs); unsigned FirstVariadicFPR = CCInfo.getFirstUnallocated(FPRArgRegs); unsigned FPRSaveSize = 16 * (NumFPRArgRegs - FirstVariadicFPR); diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp index ee0870d..4621761 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp @@ -706,7 +706,7 @@ static const LdStNInstrDesc LdStNInstInfo[] = { static const LdStNInstrDesc *getLdStNInstrDesc(unsigned Opcode) { unsigned Idx; - for (Idx = 0; Idx != array_lengthof(LdStNInstInfo); ++Idx) + for (Idx = 0; Idx != size(LdStNInstInfo); ++Idx) if (LdStNInstInfo[Idx].Opcode == Opcode) return &LdStNInstInfo[Idx]; diff --git a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp index aa7c7ff..5c7f2b5 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp @@ -347,7 +347,7 @@ const UnmangledFuncInfo UnmangledFuncInfo::Table[] = { }; const unsigned UnmangledFuncInfo::TableSize = - array_lengthof(UnmangledFuncInfo::Table); + size(UnmangledFuncInfo::Table); static AMDGPULibFunc::Param getRetType(AMDGPULibFunc::EFuncId id, const AMDGPULibFunc::Param (&Leads)[2]) { @@ -555,7 +555,7 @@ static AMDGPULibFunc::ENamePrefix parseNamePrefix(StringRef& mangledName) { } StringMap<int> ManglingRule::buildManglingRulesMap() { - StringMap<int> Map(array_lengthof(manglingRules)); + StringMap<int> Map(size(manglingRules)); int Id = 0; for (auto Rule : manglingRules) Map.insert({Rule.Name, Id++}); diff --git a/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp b/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp index c329bae..ba86df6 100644 --- a/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp +++ b/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp @@ -29,7 +29,7 @@ unsigned R600RegisterInfo::getSubRegFromChannel(unsigned Channel) { R600::sub12, R600::sub13, R600::sub14, R600::sub15 }; - assert(Channel < array_lengthof(SubRegFromChannelTable)); + assert(Channel < size(SubRegFromChannelTable)); return SubRegFromChannelTable[Channel]; } diff --git a/llvm/lib/Target/ARC/ARCISelLowering.cpp b/llvm/lib/Target/ARC/ARCISelLowering.cpp index 7fd08f7..ce57140 100644 --- a/llvm/lib/Target/ARC/ARCISelLowering.cpp +++ b/llvm/lib/Target/ARC/ARCISelLowering.cpp @@ -560,18 +560,18 @@ SDValue ARCTargetLowering::LowerCallArguments( ARC::R4, ARC::R5, ARC::R6, ARC::R7}; auto *AFI = MF.getInfo<ARCFunctionInfo>(); unsigned FirstVAReg = CCInfo.getFirstUnallocated(ArgRegs); - if (FirstVAReg < array_lengthof(ArgRegs)) { + if (FirstVAReg < size(ArgRegs)) { int Offset = 0; // Save remaining registers, storing higher register numbers at a higher // address - // There are (array_lengthof(ArgRegs) - FirstVAReg) registers which + // There are (size(ArgRegs) - FirstVAReg) registers which // need to be saved. int VarFI = - MFI.CreateFixedObject((array_lengthof(ArgRegs) - FirstVAReg) * 4, + MFI.CreateFixedObject((size(ArgRegs) - FirstVAReg) * 4, CCInfo.getNextStackOffset(), true); AFI->setVarArgsFrameIndex(VarFI); SDValue FIN = DAG.getFrameIndex(VarFI, MVT::i32); - for (unsigned i = FirstVAReg; i < array_lengthof(ArgRegs); i++) { + for (unsigned i = FirstVAReg; i < size(ArgRegs); i++) { // Move argument from phys reg -> virt reg unsigned VReg = RegInfo.createVirtualRegister(&ARC::GPR32RegClass); RegInfo.addLiveIn(ArgRegs[i], VReg); diff --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp index cde7158..d8343e0 100644 --- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -113,7 +113,7 @@ static const ARM_MLxEntry ARM_MLxTable[] = { ARMBaseInstrInfo::ARMBaseInstrInfo(const ARMSubtarget& STI) : ARMGenInstrInfo(ARM::ADJCALLSTACKDOWN, ARM::ADJCALLSTACKUP), Subtarget(STI) { - for (unsigned i = 0, e = array_lengthof(ARM_MLxTable); i != e; ++i) { + for (unsigned i = 0, e = size(ARM_MLxTable); i != e; ++i) { if (!MLxEntryMap.insert(std::make_pair(ARM_MLxTable[i].MLxOpc, i)).second) llvm_unreachable("Duplicated entries?"); MLxHazardOpcodes.insert(ARM_MLxTable[i].AddSubOpc); @@ -2466,7 +2466,7 @@ static const AddSubFlagsOpcodePair AddSubFlagsOpcodeMap[] = { }; unsigned llvm::convertAddSubFlagsOpcode(unsigned OldOpc) { - for (unsigned i = 0, e = array_lengthof(AddSubFlagsOpcodeMap); i != e; ++i) + for (unsigned i = 0, e = size(AddSubFlagsOpcodeMap); i != e; ++i) if (OldOpc == AddSubFlagsOpcodeMap[i].PseudoOpc) return AddSubFlagsOpcodeMap[i].MachineOpc; return 0; diff --git a/llvm/lib/Target/ARM/ARMFrameLowering.cpp b/llvm/lib/Target/ARM/ARMFrameLowering.cpp index 1f2f6f7..adfdfb8 100644 --- a/llvm/lib/Target/ARM/ARMFrameLowering.cpp +++ b/llvm/lib/Target/ARM/ARMFrameLowering.cpp @@ -2367,7 +2367,7 @@ bool ARMFrameLowering::assignCalleeSavedSpillSlots( const TargetFrameLowering::SpillSlot * ARMFrameLowering::getCalleeSavedSpillSlots(unsigned &NumEntries) const { static const SpillSlot FixedSpillOffsets[] = {{ARM::FPCXTNS, -4}}; - NumEntries = array_lengthof(FixedSpillOffsets); + NumEntries = size(FixedSpillOffsets); return FixedSpillOffsets; } diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index fe4e6b2..c0ce1fc 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -4465,7 +4465,7 @@ SDValue ARMTargetLowering::LowerFormalArguments( int lastInsIndex = -1; if (isVarArg && MFI.hasVAStart()) { unsigned RegIdx = CCInfo.getFirstUnallocated(GPRArgRegs); - if (RegIdx != array_lengthof(GPRArgRegs)) + if (RegIdx != size(GPRArgRegs)) ArgRegBegin = std::min(ArgRegBegin, (unsigned)GPRArgRegs[RegIdx]); } diff --git a/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp b/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp index 1cc5422..98a5ae2 100644 --- a/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp +++ b/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp @@ -244,7 +244,7 @@ INITIALIZE_PASS(Thumb2SizeReduce, DEBUG_TYPE, THUMB2_SIZE_REDUCE_NAME, false, Thumb2SizeReduce::Thumb2SizeReduce(std::function<bool(const Function &)> Ftor) : MachineFunctionPass(ID), PredicateFtor(std::move(Ftor)) { OptimizeSize = MinimizeSize = false; - for (unsigned i = 0, e = array_lengthof(ReduceTable); i != e; ++i) { + for (unsigned i = 0, e = size(ReduceTable); i != e; ++i) { unsigned FromOpc = ReduceTable[i].WideOpc; if (!ReduceOpcodeMap.insert(std::make_pair(FromOpc, i)).second) llvm_unreachable("Duplicated entries?"); diff --git a/llvm/lib/Target/AVR/AVRISelLowering.cpp b/llvm/lib/Target/AVR/AVRISelLowering.cpp index a58fedf..3ab79a16 100644 --- a/llvm/lib/Target/AVR/AVRISelLowering.cpp +++ b/llvm/lib/Target/AVR/AVRISelLowering.cpp @@ -1033,7 +1033,7 @@ static const MCPhysReg RegList16[] = { AVR::R16R15, AVR::R15R14, AVR::R14R13, AVR::R13R12, AVR::R12R11, AVR::R11R10, AVR::R10R9, AVR::R9R8}; -static_assert(array_lengthof(RegList8) == array_lengthof(RegList16), +static_assert(size(RegList8) == size(RegList16), "8-bit and 16-bit register arrays must be of equal length"); /// Analyze incoming and outgoing function arguments. We need custom C++ code @@ -1074,7 +1074,7 @@ analyzeArguments(TargetLowering::CallLoweringInfo *CLI, const Function *F, unsigned RegIdx = RegLastIdx + TotalBytes; RegLastIdx = RegIdx; // If there are not enough registers, use the stack - if (RegIdx >= array_lengthof(RegList8)) { + if (RegIdx >= size(RegList8)) { UseStack = true; } for (; i != j; ++i) { diff --git a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp index 3c742c9..5944ca4 100644 --- a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp +++ b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp @@ -675,7 +675,7 @@ static DecodeStatus DecodeCtrRegsRegisterClass(MCInst &Inst, unsigned RegNo, /* 28 */ 0, 0, UTIMERLO, UTIMERHI }; - if (RegNo >= array_lengthof(CtrlRegDecoderTable)) + if (RegNo >= size(CtrlRegDecoderTable)) return MCDisassembler::Fail; static_assert(NoRegister == 0, "Expecting NoRegister to be 0"); @@ -703,7 +703,7 @@ static DecodeStatus DecodeCtrRegs64RegisterClass(MCInst &Inst, unsigned RegNo, /* 28 */ 0, 0, UTIMER, 0 }; - if (RegNo >= array_lengthof(CtrlReg64DecoderTable)) + if (RegNo >= size(CtrlReg64DecoderTable)) return MCDisassembler::Fail; static_assert(NoRegister == 0, "Expecting NoRegister to be 0"); @@ -855,7 +855,7 @@ static DecodeStatus DecodeGuestRegsRegisterClass(MCInst &Inst, unsigned RegNo, /* 28 */ GPMUCNT2, GPMUCNT3, G30, G31 }; - if (RegNo >= array_lengthof(GuestRegDecoderTable)) + if (RegNo >= size(GuestRegDecoderTable)) return MCDisassembler::Fail; if (GuestRegDecoderTable[RegNo] == Hexagon::NoRegister) return MCDisassembler::Fail; @@ -881,7 +881,7 @@ static DecodeStatus DecodeGuestRegs64RegisterClass(MCInst &Inst, unsigned RegNo, /* 28 */ G29_28, 0, G31_30, 0 }; - if (RegNo >= array_lengthof(GuestReg64DecoderTable)) + if (RegNo >= size(GuestReg64DecoderTable)) return MCDisassembler::Fail; if (GuestReg64DecoderTable[RegNo] == Hexagon::NoRegister) return MCDisassembler::Fail; diff --git a/llvm/lib/Target/Hexagon/HexagonFrameLowering.h b/llvm/lib/Target/Hexagon/HexagonFrameLowering.h index 4ffd31b..036e4cf 100644 --- a/llvm/lib/Target/Hexagon/HexagonFrameLowering.h +++ b/llvm/lib/Target/Hexagon/HexagonFrameLowering.h @@ -97,7 +97,7 @@ public: { Hexagon::R25, -36 }, { Hexagon::R24, -40 }, { Hexagon::D12, -40 }, { Hexagon::R27, -44 }, { Hexagon::R26, -48 }, { Hexagon::D13, -48 } }; - NumEntries = array_lengthof(Offsets); + NumEntries = size(Offsets); return Offsets; } diff --git a/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp b/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp index 43afae4..2bbccfe 100644 --- a/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp +++ b/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp @@ -998,8 +998,8 @@ bool HexagonHardwareLoops::isInvalidLoopOperation(const MachineInstr *MI, static const unsigned Regs01[] = { LC0, SA0, LC1, SA1 }; static const unsigned Regs1[] = { LC1, SA1 }; - auto CheckRegs = IsInnerHWLoop ? makeArrayRef(Regs01, array_lengthof(Regs01)) - : makeArrayRef(Regs1, array_lengthof(Regs1)); + auto CheckRegs = IsInnerHWLoop ? makeArrayRef(Regs01, size(Regs01)) + : makeArrayRef(Regs1, size(Regs1)); for (unsigned R : CheckRegs) if (MI->modifiesRegister(R, TRI)) return true; diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index 161768b..0b23ba2 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -304,7 +304,7 @@ bool HexagonDAGToDAGISel::tryLoadOfLoadIntrinsic(LoadSDNode *N) { SDNode *S = StoreInstrForLoadIntrinsic(L, C); SDValue F[] = { SDValue(N,0), SDValue(N,1), SDValue(C,0), SDValue(C,1) }; SDValue T[] = { SDValue(L,0), SDValue(S,0), SDValue(L,1), SDValue(S,0) }; - ReplaceUses(F, T, array_lengthof(T)); + ReplaceUses(F, T, size(T)); // This transformation will leave the intrinsic dead. If it remains in // the DAG, the selection code will see it again, but without the load, // and it will generate a store that is normally required for it. diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index d7ca934a..8012c03 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -144,7 +144,7 @@ static bool CC_SkipOdd(unsigned &ValNo, MVT &ValVT, MVT &LocVT, Hexagon::R0, Hexagon::R1, Hexagon::R2, Hexagon::R3, Hexagon::R4, Hexagon::R5 }; - const unsigned NumArgRegs = array_lengthof(ArgRegs); + const unsigned NumArgRegs = size(ArgRegs); unsigned RegNum = State.getFirstUnallocated(ArgRegs); // RegNum is an index into ArgRegs: skip a register if RegNum is odd. diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp index f8ac35a..26054d0 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp @@ -643,7 +643,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI, Hexagon::fixup_Hexagon_GPREL16_0, Hexagon::fixup_Hexagon_GPREL16_1, Hexagon::fixup_Hexagon_GPREL16_2, Hexagon::fixup_Hexagon_GPREL16_3 }; - assert(Shift < array_lengthof(GPRelFixups)); + assert(Shift < size(GPRelFixups)); auto UsesGP = [] (const MCInstrDesc &D) { for (const MCPhysReg *U = D.getImplicitUses(); U && *U; ++U) if (*U == Hexagon::GP) diff --git a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp index 9539167..144c004 100644 --- a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp +++ b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp @@ -81,7 +81,7 @@ public: {"fixup_8", 0, 8, 0}, {"fixup_sym_diff", 0, 32, 0}, }; - static_assert((array_lengthof(Infos)) == MSP430::NumTargetFixupKinds, + static_assert((size(Infos)) == MSP430::NumTargetFixupKinds, "Not all fixup kinds added to Infos array"); if (Kind < FirstTargetFixupKind) diff --git a/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp b/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp index aebfc6b..b6382a5 100644 --- a/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp +++ b/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp @@ -458,12 +458,12 @@ static void AnalyzeArguments(CCState &State, static const MCPhysReg CRegList[] = { MSP430::R12, MSP430::R13, MSP430::R14, MSP430::R15 }; - static const unsigned CNbRegs = array_lengthof(CRegList); + static const unsigned CNbRegs = size(CRegList); static const MCPhysReg BuiltinRegList[] = { MSP430::R8, MSP430::R9, MSP430::R10, MSP430::R11, MSP430::R12, MSP430::R13, MSP430::R14, MSP430::R15 }; - static const unsigned BuiltinNbRegs = array_lengthof(BuiltinRegList); + static const unsigned BuiltinNbRegs = size(BuiltinRegList); ArrayRef<MCPhysReg> RegList; unsigned NbRegs; diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp index a3dbe6f..7257897 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp @@ -420,7 +420,7 @@ getFixupKindInfo(MCFixupKind Kind) const { { "fixup_Mips_JALR", 0, 32, 0 }, { "fixup_MICROMIPS_JALR", 0, 32, 0 } }; - static_assert(array_lengthof(LittleEndianInfos) == Mips::NumTargetFixupKinds, + static_assert(size(LittleEndianInfos) == Mips::NumTargetFixupKinds, "Not all MIPS little endian fixup kinds added!"); const static MCFixupKindInfo BigEndianInfos[] = { @@ -499,7 +499,7 @@ getFixupKindInfo(MCFixupKind Kind) const { { "fixup_Mips_JALR", 0, 32, 0 }, { "fixup_MICROMIPS_JALR", 0, 32, 0 } }; - static_assert(array_lengthof(BigEndianInfos) == Mips::NumTargetFixupKinds, + static_assert(size(BigEndianInfos) == Mips::NumTargetFixupKinds, "Not all MIPS big endian fixup kinds added!"); if (Kind < FirstTargetFixupKind) diff --git a/llvm/lib/Target/Mips/Mips16ISelLowering.cpp b/llvm/lib/Target/Mips/Mips16ISelLowering.cpp index 78ffe00..1e98b8a 100644 --- a/llvm/lib/Target/Mips/Mips16ISelLowering.cpp +++ b/llvm/lib/Target/Mips/Mips16ISelLowering.cpp @@ -246,7 +246,7 @@ bool Mips16TargetLowering::isEligibleForTailCallOptimization( } void Mips16TargetLowering::setMips16HardFloatLibCalls() { - for (unsigned I = 0; I != array_lengthof(HardFloatLibCalls); ++I) { + for (unsigned I = 0; I != size(HardFloatLibCalls); ++I) { assert((I == 0 || HardFloatLibCalls[I - 1] < HardFloatLibCalls[I]) && "Array not sorted!"); if (HardFloatLibCalls[I].Libcall != RTLIB::UNKNOWN_LIBCALL) diff --git a/llvm/lib/Target/PowerPC/PPCCallingConv.cpp b/llvm/lib/Target/PowerPC/PPCCallingConv.cpp index 77cdf5c..c90bd04 100644 --- a/llvm/lib/Target/PowerPC/PPCCallingConv.cpp +++ b/llvm/lib/Target/PowerPC/PPCCallingConv.cpp @@ -37,7 +37,7 @@ static bool CC_PPC32_SVR4_Custom_AlignArgRegs(unsigned &ValNo, MVT &ValVT, PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, }; - const unsigned NumArgRegs = array_lengthof(ArgRegs); + const unsigned NumArgRegs = size(ArgRegs); unsigned RegNum = State.getFirstUnallocated(ArgRegs); @@ -62,7 +62,7 @@ static bool CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128( PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, }; - const unsigned NumArgRegs = array_lengthof(ArgRegs); + const unsigned NumArgRegs = size(ArgRegs); unsigned RegNum = State.getFirstUnallocated(ArgRegs); int RegsLeft = NumArgRegs - RegNum; @@ -88,7 +88,7 @@ static bool CC_PPC32_SVR4_Custom_AlignFPArgRegs(unsigned &ValNo, MVT &ValVT, PPC::F8 }; - const unsigned NumArgRegs = array_lengthof(ArgRegs); + const unsigned NumArgRegs = size(ArgRegs); unsigned RegNum = State.getFirstUnallocated(ArgRegs); diff --git a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp b/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp index 65c969c..9a04a20 100644 --- a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp @@ -228,23 +228,23 @@ const PPCFrameLowering::SpillSlot *PPCFrameLowering::getCalleeSavedSpillSlots( CALLEE_SAVED_FPRS, CALLEE_SAVED_GPRS64, CALLEE_SAVED_VRS}; if (Subtarget.is64BitELFABI()) { - NumEntries = array_lengthof(ELFOffsets64); + NumEntries = size(ELFOffsets64); return ELFOffsets64; } if (Subtarget.is32BitELFABI()) { - NumEntries = array_lengthof(ELFOffsets32); + NumEntries = size(ELFOffsets32); return ELFOffsets32; } assert(Subtarget.isAIXABI() && "Unexpected ABI."); if (Subtarget.isPPC64()) { - NumEntries = array_lengthof(AIXOffsets64); + NumEntries = size(AIXOffsets64); return AIXOffsets64; } - NumEntries = array_lengthof(AIXOffsets32); + NumEntries = size(AIXOffsets32); return AIXOffsets32; } diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 25cc34b..650b9e9 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -4149,13 +4149,13 @@ SDValue PPCTargetLowering::LowerFormalArguments_32SVR4( PPC::R3, PPC::R4, PPC::R5, PPC::R6, PPC::R7, PPC::R8, PPC::R9, PPC::R10, }; - const unsigned NumGPArgRegs = array_lengthof(GPArgRegs); + const unsigned NumGPArgRegs = size(GPArgRegs); static const MCPhysReg FPArgRegs[] = { PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, PPC::F8 }; - unsigned NumFPArgRegs = array_lengthof(FPArgRegs); + unsigned NumFPArgRegs = size(FPArgRegs); if (useSoftFloat() || hasSPE()) NumFPArgRegs = 0; @@ -4267,9 +4267,9 @@ SDValue PPCTargetLowering::LowerFormalArguments_64SVR4( PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 }; - const unsigned Num_GPR_Regs = array_lengthof(GPR); + const unsigned Num_GPR_Regs = size(GPR); const unsigned Num_FPR_Regs = useSoftFloat() ? 0 : 13; - const unsigned Num_VR_Regs = array_lengthof(VR); + const unsigned Num_VR_Regs = size(VR); // Do a first pass over the arguments to determine whether the ABI // guarantees that our caller has allocated the parameter save area @@ -4724,9 +4724,9 @@ needStackSlotPassParameters(const PPCSubtarget &Subtarget, PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 }; - const unsigned NumGPRs = array_lengthof(GPR); + const unsigned NumGPRs = size(GPR); const unsigned NumFPRs = 13; - const unsigned NumVRs = array_lengthof(VR); + const unsigned NumVRs = size(VR); const unsigned ParamAreaSize = NumGPRs * PtrByteSize; unsigned NumBytes = LinkageSize; @@ -5977,9 +5977,9 @@ SDValue PPCTargetLowering::LowerCall_64SVR4( PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 }; - const unsigned NumGPRs = array_lengthof(GPR); + const unsigned NumGPRs = size(GPR); const unsigned NumFPRs = useSoftFloat() ? 0 : 13; - const unsigned NumVRs = array_lengthof(VR); + const unsigned NumVRs = size(VR); // On ELFv2, we can avoid allocating the parameter area if all the arguments // can be passed to the callee in registers. @@ -7148,7 +7148,7 @@ SDValue PPCTargetLowering::LowerFormalArguments_AIX( static const MCPhysReg GPR_64[] = {PPC::X3, PPC::X4, PPC::X5, PPC::X6, PPC::X7, PPC::X8, PPC::X9, PPC::X10}; - const unsigned NumGPArgRegs = array_lengthof(IsPPC64 ? GPR_64 : GPR_32); + const unsigned NumGPArgRegs = size(IsPPC64 ? GPR_64 : GPR_32); // The fixed integer arguments of a variadic function are stored to the // VarArgsFrameIndex on the stack so that they may be loaded by @@ -9354,7 +9354,7 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op, -8, 8, -9, 9, -10, 10, -11, 11, -12, 12, -13, 13, 14, -14, 15, -15, -16 }; - for (unsigned idx = 0; idx < array_lengthof(SplatCsts); ++idx) { + for (unsigned idx = 0; idx < size(SplatCsts); ++idx) { // Indirect through the SplatCsts array so that we favor 'vsplti -1' for // cases which are ambiguous (e.g. formation of 0x8000_0000). 'vsplti -1' int i = SplatCsts[idx]; diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp index eada872..3d91879 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -310,7 +310,7 @@ static const uint16_t FMAOpIdxInfo[][6] = { // Check if an opcode is a FMA instruction. If it is, return the index in array // FMAOpIdxInfo. Otherwise, return -1. int16_t PPCInstrInfo::getFMAOpIdxInfo(unsigned Opcode) const { - for (unsigned I = 0; I < array_lengthof(FMAOpIdxInfo); I++) + for (unsigned I = 0; I < size(FMAOpIdxInfo); I++) if (FMAOpIdxInfo[I][InfoArrayIdxFMAInst] == Opcode) return I; return -1; @@ -2331,7 +2331,7 @@ bool PPCInstrInfo::ClobbersPredicate(MachineInstr &MI, bool Found = false; for (const MachineOperand &MO : MI.operands()) { - for (unsigned c = 0; c < array_lengthof(RCs) && !Found; ++c) { + for (unsigned c = 0; c < size(RCs) && !Found; ++c) { const TargetRegisterClass *RC = RCs[c]; if (MO.isReg()) { if (MO.isDef() && RC->contains(MO.getReg())) { diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp index 514789b3..4305d17 100644 --- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp +++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp @@ -94,7 +94,7 @@ RISCVAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { {"fixup_riscv_set_6b", 2, 6, 0}, {"fixup_riscv_sub_6b", 2, 6, 0}, }; - static_assert((array_lengthof(Infos)) == RISCV::NumTargetFixupKinds, + static_assert((size(Infos)) == RISCV::NumTargetFixupKinds, "Not all fixup kinds added to Infos array"); // Fixup kinds from .reloc directive are like R_RISCV_NONE. They diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index a01c76d..b96dae7 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -8786,7 +8786,7 @@ static bool CC_RISCV(const DataLayout &DL, RISCVABI::ABI ABI, unsigned ValNo, } // FPR16, FPR32, and FPR64 alias each other. - if (State.getFirstUnallocated(ArgFPR32s) == array_lengthof(ArgFPR32s)) { + if (State.getFirstUnallocated(ArgFPR32s) == size(ArgFPR32s)) { UseGPRForF16_F32 = true; UseGPRForF64 = true; } @@ -8815,7 +8815,7 @@ static bool CC_RISCV(const DataLayout &DL, RISCVABI::ABI ABI, unsigned ValNo, DL.getTypeAllocSize(OrigTy) == TwoXLenInBytes) { unsigned RegIdx = State.getFirstUnallocated(ArgGPRs); // Skip 'odd' register if necessary. - if (RegIdx != array_lengthof(ArgGPRs) && RegIdx % 2 == 1) + if (RegIdx != size(ArgGPRs) && RegIdx % 2 == 1) State.AllocateReg(ArgGPRs); } diff --git a/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp b/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp index 142124a..a7d0029 100644 --- a/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp +++ b/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp @@ -235,7 +235,7 @@ static DecodeStatus DecodeASRRegsRegisterClass(MCInst &Inst, unsigned RegNo, static DecodeStatus DecodePRRegsRegisterClass(MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) { - if (RegNo >= array_lengthof(PRRegDecoderTable)) + if (RegNo >= size(PRRegDecoderTable)) return MCDisassembler::Fail; Inst.addOperand(MCOperand::createReg(PRRegDecoderTable[RegNo])); return MCDisassembler::Success; diff --git a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp index ccc7d07..f33d5cd 100644 --- a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp @@ -219,7 +219,7 @@ SystemZELFFrameLowering::SystemZELFFrameLowering() // Create a mapping from register number to save slot offset. // These offsets are relative to the start of the register save area. RegSpillOffsets.grow(SystemZ::NUM_TARGET_REGS); - for (unsigned I = 0, E = array_lengthof(ELFSpillOffsetTable); I != E; ++I) + for (unsigned I = 0, E = size(ELFSpillOffsetTable); I != E; ++I) RegSpillOffsets[ELFSpillOffsetTable[I].Reg] = ELFSpillOffsetTable[I].Offset; } @@ -824,7 +824,7 @@ SystemZXPLINKFrameLowering::SystemZXPLINKFrameLowering() // Create a mapping from register number to save slot offset. // These offsets are relative to the start of the local are area. RegSpillOffsets.grow(SystemZ::NUM_TARGET_REGS); - for (unsigned I = 0, E = array_lengthof(XPLINKSpillOffsetTable); I != E; ++I) + for (unsigned I = 0, E = size(XPLINKSpillOffsetTable); I != E; ++I) RegSpillOffsets[XPLINKSpillOffsetTable[I].Reg] = XPLINKSpillOffsetTable[I].Offset; } diff --git a/llvm/lib/Target/VE/VEFrameLowering.h b/llvm/lib/Target/VE/VEFrameLowering.h index 99eb411..71ce75b 100644 --- a/llvm/lib/Target/VE/VEFrameLowering.h +++ b/llvm/lib/Target/VE/VEFrameLowering.h @@ -62,7 +62,7 @@ public: {VE::SX25, 104}, {VE::SX26, 112}, {VE::SX27, 120}, {VE::SX28, 128}, {VE::SX29, 136}, {VE::SX30, 144}, {VE::SX31, 152}, {VE::SX32, 160}, {VE::SX33, 168}}; - NumEntries = array_lengthof(Offsets); + NumEntries = size(Offsets); return Offsets; } diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index e9ecff3..6a0d36b 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -4408,7 +4408,7 @@ bool X86AsmParser::MatchAndEmitATTInstruction(SMLoc IDLoc, unsigned &Opcode, } } - for (unsigned I = 0, E = array_lengthof(Match); I != E; ++I) { + for (unsigned I = 0, E = size(Match); I != E; ++I) { Tmp.back() = Suffixes[I]; if (MemOp && HasVectorReg) MemOp->Mem.Size = MemSize[I]; @@ -4454,7 +4454,7 @@ bool X86AsmParser::MatchAndEmitATTInstruction(SMLoc IDLoc, unsigned &Opcode, if (NumSuccessfulMatches > 1) { char MatchChars[4]; unsigned NumMatches = 0; - for (unsigned I = 0, E = array_lengthof(Match); I != E; ++I) + for (unsigned I = 0, E = size(Match); I != E; ++I) if (Match[I] == Match_Success) MatchChars[NumMatches++] = Suffixes[I]; diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index ba606d7..fcf0fc1 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -12262,7 +12262,7 @@ static int canLowerByDroppingElements(ArrayRef<int> Mask, bool MatchEven, continue; bool IsAnyViable = false; - for (unsigned j = 0; j != array_lengthof(ViableForN); ++j) + for (unsigned j = 0; j != size(ViableForN); ++j) if (ViableForN[j]) { uint64_t N = j + 1; @@ -12277,7 +12277,7 @@ static int canLowerByDroppingElements(ArrayRef<int> Mask, bool MatchEven, break; } - for (unsigned j = 0; j != array_lengthof(ViableForN); ++j) + for (unsigned j = 0; j != size(ViableForN); ++j) if (ViableForN[j]) return j + 1; diff --git a/llvm/lib/Target/XCore/XCoreISelLowering.cpp b/llvm/lib/Target/XCore/XCoreISelLowering.cpp index 7c86262..47634634 100644 --- a/llvm/lib/Target/XCore/XCoreISelLowering.cpp +++ b/llvm/lib/Target/XCore/XCoreISelLowering.cpp @@ -1347,11 +1347,11 @@ SDValue XCoreTargetLowering::LowerCCCArguments( }; XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>(); unsigned FirstVAReg = CCInfo.getFirstUnallocated(ArgRegs); - if (FirstVAReg < array_lengthof(ArgRegs)) { + if (FirstVAReg < size(ArgRegs)) { int offset = 0; // Save remaining registers, storing higher register numbers at a higher // address - for (int i = array_lengthof(ArgRegs) - 1; i >= (int)FirstVAReg; --i) { + for (int i = size(ArgRegs) - 1; i >= (int)FirstVAReg; --i) { // Create a stack slot int FI = MFI.CreateFixedObject(4, offset, true); if (i == (int)FirstVAReg) { diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp index 0598f75..db6df99 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp @@ -576,7 +576,7 @@ Value *FAddCombine::simplifyFAdd(AddendVect& Addends, unsigned InstrQuota) { } } - assert((NextTmpIdx <= array_lengthof(TmpResult) + 1) && + assert((NextTmpIdx <= size(TmpResult) + 1) && "out-of-bound access"); Value *Result; diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 654f0d2..b1f515d 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -4254,7 +4254,7 @@ void LSRInstance::GenerateCrossUseConstantOffsets() { ImmMapTy::const_iterator OtherImms[] = { Imms.begin(), std::prev(Imms.end()), Imms.lower_bound(Avg)}; - for (size_t i = 0, e = array_lengthof(OtherImms); i != e; ++i) { + for (size_t i = 0, e = size(OtherImms); i != e; ++i) { ImmMapTy::const_iterator M = OtherImms[i]; if (M == J || M == JE) continue; diff --git a/llvm/lib/Transforms/Utils/MetaRenamer.cpp b/llvm/lib/Transforms/Utils/MetaRenamer.cpp index 9fba2f3..679bc9e 100644 --- a/llvm/lib/Transforms/Utils/MetaRenamer.cpp +++ b/llvm/lib/Transforms/Utils/MetaRenamer.cpp @@ -87,7 +87,7 @@ struct Renamer { Renamer(unsigned int seed) { prng.srand(seed); } const char *newName() { - return metaNames[prng.rand() % array_lengthof(metaNames)]; + return metaNames[prng.rand() % size(metaNames)]; } PRNG prng; diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp index 8ed88f3..a663b4c 100644 --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -170,7 +170,7 @@ static std::vector<std::string> ComputeLibsForComponents( // Build a map of component names to information. StringMap<AvailableComponent *> ComponentMap; - for (unsigned i = 0; i != array_lengthof(AvailableComponents); ++i) { + for (unsigned i = 0; i != size(AvailableComponents); ++i) { AvailableComponent *AC = &AvailableComponents[i]; ComponentMap[AC->Name] = AC; } @@ -540,7 +540,7 @@ int main(int argc, char **argv) { /// built, print LLVM_DYLIB_COMPONENTS instead of everything /// in the manifest. std::vector<std::string> Components; - for (unsigned j = 0; j != array_lengthof(AvailableComponents); ++j) { + for (unsigned j = 0; j != size(AvailableComponents); ++j) { // Only include non-installed components when in a development tree. if (!AvailableComponents[j].IsInstalled && !IsInDevelopmentTree) continue; diff --git a/llvm/tools/llvm-objdump/COFFDump.cpp b/llvm/tools/llvm-objdump/COFFDump.cpp index 32fdd1a..c3d5ff0 100644 --- a/llvm/tools/llvm-objdump/COFFDump.cpp +++ b/llvm/tools/llvm-objdump/COFFDump.cpp @@ -173,7 +173,7 @@ void COFFDumper::printPEHeader(const PEHeader &Hdr) const { "Reserved", }; outs() << "\nThe Data Directory\n"; - for (uint32_t I = 0; I != array_lengthof(DirName); ++I) { + for (uint32_t I = 0; I != size(DirName); ++I) { uint32_t Addr = 0, Size = 0; if (const data_directory *Data = Obj.getDataDirectory(I)) { Addr = Data->RelativeVirtualAddress; diff --git a/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp b/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp index 78be632..691ded4 100644 --- a/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp +++ b/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp @@ -883,8 +883,8 @@ void Decoder::decodeOpcodes(ArrayRef<uint8_t> Opcodes, unsigned Offset, bool Terminated = false; for (unsigned OI = Offset, OE = Opcodes.size(); !Terminated && OI < OE; ) { for (unsigned DI = 0;; ++DI) { - if ((isAArch64 && (DI >= array_lengthof(Ring64))) || - (!isAArch64 && (DI >= array_lengthof(Ring)))) { + if ((isAArch64 && (DI >= size(Ring64))) || + (!isAArch64 && (DI >= size(Ring)))) { SW.startLine() << format("0x%02x ; Bad opcode!\n", Opcodes.data()[OI]); ++OI; diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index cfb6181..ae1b121 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -4988,7 +4988,7 @@ template <typename ELFT> static GNUAbiTag getGNUAbiTag(ArrayRef<uint8_t> Desc) { "Linux", "Hurd", "Solaris", "FreeBSD", "NetBSD", "Syllable", "NaCl", }; StringRef OSName = "Unknown"; - if (Words[0] < array_lengthof(OSNames)) + if (Words[0] < size(OSNames)) OSName = OSNames[Words[0]]; uint32_t Major = Words[1], Minor = Words[2], Patch = Words[3]; std::string str; diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp index 1683a9d..35fa362 100644 --- a/llvm/unittests/ADT/APFloatTest.cpp +++ b/llvm/unittests/ADT/APFloatTest.cpp @@ -937,13 +937,13 @@ TEST(APFloatTest, fromStringSpecials) { }; // Convert payload integer to decimal string representation. - std::string NaNPayloadDecStrings[array_lengthof(NaNPayloads)]; - for (size_t I = 0; I < array_lengthof(NaNPayloads); ++I) + std::string NaNPayloadDecStrings[size(NaNPayloads)]; + for (size_t I = 0; I < size(NaNPayloads); ++I) NaNPayloadDecStrings[I] = utostr(NaNPayloads[I]); // Convert payload integer to hexadecimal string representation. - std::string NaNPayloadHexStrings[array_lengthof(NaNPayloads)]; - for (size_t I = 0; I < array_lengthof(NaNPayloads); ++I) + std::string NaNPayloadHexStrings[size(NaNPayloads)]; + for (size_t I = 0; I < size(NaNPayloads); ++I) NaNPayloadHexStrings[I] = "0x" + utohexstr(NaNPayloads[I]); // Fix payloads to expected result. @@ -967,7 +967,7 @@ TEST(APFloatTest, fromStringSpecials) { for (char TypeChar : NaNTypes) { bool Signaling = (TypeChar == 's' || TypeChar == 'S'); - for (size_t J = 0; J < array_lengthof(NaNPayloads); ++J) { + for (size_t J = 0; J < size(NaNPayloads); ++J) { uint64_t Payload = (Signaling && !NaNPayloads[J]) ? SNaNDefaultPayload : NaNPayloads[J]; std::string &PayloadDec = NaNPayloadDecStrings[J]; @@ -2220,7 +2220,7 @@ TEST(APFloatTest, add) { { MSmallestNormalized, MSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal } }; - for (size_t i = 0; i < array_lengthof(SpecialCaseTests); ++i) { + for (size_t i = 0; i < size(SpecialCaseTests); ++i) { APFloat x(SpecialCaseTests[i].x); APFloat y(SpecialCaseTests[i].y); APFloat::opStatus status = x.add(y, APFloat::rmNearestTiesToEven); @@ -2460,7 +2460,7 @@ TEST(APFloatTest, subtract) { { MSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero } }; - for (size_t i = 0; i < array_lengthof(SpecialCaseTests); ++i) { + for (size_t i = 0; i < size(SpecialCaseTests); ++i) { APFloat x(SpecialCaseTests[i].x); APFloat y(SpecialCaseTests[i].y); APFloat::opStatus status = x.subtract(y, APFloat::rmNearestTiesToEven); @@ -2764,7 +2764,7 @@ TEST(APFloatTest, multiply) { APFloat::rmNearestTiesToAway}, }; - for (size_t i = 0; i < array_lengthof(SpecialCaseTests); ++i) { + for (size_t i = 0; i < size(SpecialCaseTests); ++i) { APFloat x(SpecialCaseTests[i].x); APFloat y(SpecialCaseTests[i].y); APFloat::opStatus status = x.multiply(y, SpecialCaseTests[i].roundingMode); @@ -3046,7 +3046,7 @@ TEST(APFloatTest, divide) { APFloat::rmNearestTiesToAway}, }; - for (size_t i = 0; i < array_lengthof(SpecialCaseTests); ++i) { + for (size_t i = 0; i < size(SpecialCaseTests); ++i) { APFloat x(SpecialCaseTests[i].x); APFloat y(SpecialCaseTests[i].y); APFloat::opStatus status = x.divide(y, SpecialCaseTests[i].roundingMode); @@ -4006,7 +4006,7 @@ TEST(APFloatTest, remainder) { { MVal6, MVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, }; - for (size_t i = 0; i < array_lengthof(SpecialCaseTests); ++i) { + for (size_t i = 0; i < size(SpecialCaseTests); ++i) { APFloat x(SpecialCaseTests[i].x); APFloat y(SpecialCaseTests[i].y); APFloat::opStatus status = x.remainder(y); diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp index e80a25a..114c097 100644 --- a/llvm/unittests/ADT/StringRefTest.cpp +++ b/llvm/unittests/ADT/StringRefTest.cpp @@ -659,7 +659,7 @@ TEST(StringRefTest, getAsInteger) { uint32_t U32; uint64_t U64; - for (size_t i = 0; i < array_lengthof(Unsigned); ++i) { + for (size_t i = 0; i < size(Unsigned); ++i) { bool U8Success = StringRef(Unsigned[i].Str).getAsInteger(0, U8); if (static_cast<uint8_t>(Unsigned[i].Expected) == Unsigned[i].Expected) { ASSERT_FALSE(U8Success); @@ -691,7 +691,7 @@ TEST(StringRefTest, getAsInteger) { int32_t S32; int64_t S64; - for (size_t i = 0; i < array_lengthof(Signed); ++i) { + for (size_t i = 0; i < size(Signed); ++i) { bool S8Success = StringRef(Signed[i].Str).getAsInteger(0, S8); if (static_cast<int8_t>(Signed[i].Expected) == Signed[i].Expected) { ASSERT_FALSE(S8Success); @@ -737,7 +737,7 @@ static const char* BadStrings[] = { TEST(StringRefTest, getAsUnsignedIntegerBadStrings) { unsigned long long U64; - for (size_t i = 0; i < array_lengthof(BadStrings); ++i) { + for (size_t i = 0; i < size(BadStrings); ++i) { bool IsBadNumber = StringRef(BadStrings[i]).getAsInteger(0, U64); ASSERT_TRUE(IsBadNumber); } @@ -820,7 +820,7 @@ TEST(StringRefTest, consumeIntegerUnsigned) { uint32_t U32; uint64_t U64; - for (size_t i = 0; i < array_lengthof(ConsumeUnsigned); ++i) { + for (size_t i = 0; i < size(ConsumeUnsigned); ++i) { StringRef Str = ConsumeUnsigned[i].Str; bool U8Success = Str.consumeInteger(0, U8); if (static_cast<uint8_t>(ConsumeUnsigned[i].Expected) == @@ -868,7 +868,7 @@ TEST(StringRefTest, consumeIntegerSigned) { int32_t S32; int64_t S64; - for (size_t i = 0; i < array_lengthof(ConsumeSigned); ++i) { + for (size_t i = 0; i < size(ConsumeSigned); ++i) { StringRef Str = ConsumeSigned[i].Str; bool S8Success = Str.consumeInteger(0, S8); if (static_cast<int8_t>(ConsumeSigned[i].Expected) == @@ -945,7 +945,7 @@ static const char join_result3[] = "a::b::c"; TEST(StringRefTest, joinStrings) { std::vector<StringRef> v1; std::vector<std::string> v2; - for (size_t i = 0; i < array_lengthof(join_input); ++i) { + for (size_t i = 0; i < size(join_input); ++i) { v1.push_back(join_input[i]); v2.push_back(join_input[i]); } diff --git a/llvm/unittests/ADT/TinyPtrVectorTest.cpp b/llvm/unittests/ADT/TinyPtrVectorTest.cpp index a78f5b0..aa6d53b 100644 --- a/llvm/unittests/ADT/TinyPtrVectorTest.cpp +++ b/llvm/unittests/ADT/TinyPtrVectorTest.cpp @@ -45,7 +45,7 @@ protected: std::vector<PtrT> TestPtrs; TinyPtrVectorTest() { - for (size_t i = 0, e = array_lengthof(TestValues); i != e; ++i) + for (size_t i = 0, e = size(TestValues); i != e; ++i) TestPtrs.push_back(PtrT(&TestValues[i])); std::shuffle(TestPtrs.begin(), TestPtrs.end(), std::mt19937{}); diff --git a/llvm/unittests/ProfileData/CoverageMappingTest.cpp b/llvm/unittests/ProfileData/CoverageMappingTest.cpp index cc4c953..b9fd4d3 100644 --- a/llvm/unittests/ProfileData/CoverageMappingTest.cpp +++ b/llvm/unittests/ProfileData/CoverageMappingTest.cpp @@ -292,7 +292,7 @@ TEST_P(CoverageMappingTest, basic_write_read) { TEST_P(CoverageMappingTest, correct_deserialize_for_more_than_two_files) { const char *FileNames[] = {"bar", "baz", "foo"}; - static const unsigned N = array_lengthof(FileNames); + static const unsigned N = size(FileNames); startFunction("func", 0x1234); for (unsigned I = 0; I < N; ++I) @@ -321,7 +321,7 @@ TEST_P(CoverageMappingTest, load_coverage_for_more_than_two_files) { ProfileWriter.addRecord({"func", 0x1234, {0}}, Err); const char *FileNames[] = {"bar", "baz", "foo"}; - static const unsigned N = array_lengthof(FileNames); + static const unsigned N = size(FileNames); startFunction("func", 0x1234); for (unsigned I = 0; I < N; ++I) diff --git a/llvm/unittests/Support/BinaryStreamTest.cpp b/llvm/unittests/Support/BinaryStreamTest.cpp index f98b7f3..f3841b1 100644 --- a/llvm/unittests/Support/BinaryStreamTest.cpp +++ b/llvm/unittests/Support/BinaryStreamTest.cpp @@ -103,7 +103,7 @@ private: }; constexpr endianness Endians[] = {big, little, native}; -constexpr uint32_t NumEndians = llvm::array_lengthof(Endians); +constexpr uint32_t NumEndians = llvm::size(Endians); constexpr uint32_t NumStreams = 2 * NumEndians; class BinaryStreamTest : public testing::Test { diff --git a/llvm/unittests/Support/CommandLineTest.cpp b/llvm/unittests/Support/CommandLineTest.cpp index 8032d0e7..695bb70 100644 --- a/llvm/unittests/Support/CommandLineTest.cpp +++ b/llvm/unittests/Support/CommandLineTest.cpp @@ -345,7 +345,7 @@ TEST(CommandLineTest, AliasesWithArguments) { { "-tool", "-alias", "x" } }; - for (size_t i = 0, e = array_lengthof(Inputs); i < e; ++i) { + for (size_t i = 0, e = size(Inputs); i < e; ++i) { StackOption<std::string> Actual("actual"); StackOption<bool> Extra("extra"); StackOption<std::string> Input(cl::Positional); @@ -374,8 +374,8 @@ void testAliasRequired(int argc, const char *const *argv) { TEST(CommandLineTest, AliasRequired) { const char *opts1[] = { "-tool", "-option=x" }; const char *opts2[] = { "-tool", "-o", "x" }; - testAliasRequired(array_lengthof(opts1), opts1); - testAliasRequired(array_lengthof(opts2), opts2); + testAliasRequired(size(opts1), opts1); + testAliasRequired(size(opts2), opts2); } TEST(CommandLineTest, HideUnrelatedOptions) { @@ -987,8 +987,8 @@ TEST(CommandLineTest, ResponseFileEOLs) { /*CurrentDir=*/StringRef(TestRoot), FS)); const char *Expected[] = {"clang", "-Xclang", "-Wno-whatever", nullptr, "input.cpp"}; - ASSERT_EQ(array_lengthof(Expected), Argv.size()); - for (size_t I = 0, E = array_lengthof(Expected); I < E; ++I) { + ASSERT_EQ(size(Expected), Argv.size()); + for (size_t I = 0, E = size(Expected); I < E; ++I) { if (Expected[I] == nullptr) { ASSERT_EQ(Argv[I], nullptr); } else { diff --git a/llvm/unittests/Support/FormatVariadicTest.cpp b/llvm/unittests/Support/FormatVariadicTest.cpp index 3794616..e905d25 100644 --- a/llvm/unittests/Support/FormatVariadicTest.cpp +++ b/llvm/unittests/Support/FormatVariadicTest.cpp @@ -529,7 +529,7 @@ TEST(FormatVariadicTest, BigTest) { std::string S; llvm::raw_string_ostream Stream(S); Stream << formatv(Intro, std::tuple_size<Tuple>::value, - llvm::array_lengthof(Ts)) + llvm::size(Ts)) << "\n"; Stream << formatv(Header, "Char", "HexInt", "Str", "Ref", "std::str", "double", "float", "pointer", "comma", "exp", "bigint", diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp index a9a8de6..7165f2d 100644 --- a/llvm/unittests/Support/TargetParserTest.cpp +++ b/llvm/unittests/Support/TargetParserTest.cpp @@ -733,7 +733,7 @@ TEST(TargetParserTest, ARMArchExtFeature) { {"mve", "nomve", "+mve", "-mve"}, {"mve.fp", "nomve.fp", "+mve.fp", "-mve.fp"}}; - for (unsigned i = 0; i < array_lengthof(ArchExt); i++) { + for (unsigned i = 0; i < size(ArchExt); i++) { EXPECT_EQ(StringRef(ArchExt[i][2]), ARM::getArchExtFeature(ArchExt[i][0])); EXPECT_EQ(StringRef(ArchExt[i][3]), ARM::getArchExtFeature(ArchExt[i][1])); } @@ -764,7 +764,7 @@ TEST(TargetParserTest, ARMArchExtDependencies) { TEST(TargetParserTest, ARMparseHWDiv) { const char *hwdiv[] = {"thumb", "arm", "arm,thumb", "thumb,arm"}; - for (unsigned i = 0; i < array_lengthof(hwdiv); i++) + for (unsigned i = 0; i < size(hwdiv); i++) EXPECT_NE(ARM::AEK_INVALID, ARM::parseHWDiv((StringRef)hwdiv[i])); } @@ -782,7 +782,7 @@ TEST(TargetParserTest, ARMparseArchEndianAndISA) { "v8.7a", "v8.8-a", "v8.8a", "v8-r", "v8m.base", "v8m.main", "v8.1m.main"}; - for (unsigned i = 0; i < array_lengthof(Arch); i++) { + for (unsigned i = 0; i < size(Arch); i++) { std::string arm_1 = "armeb" + (std::string)(Arch[i]); std::string arm_2 = "arm" + (std::string)(Arch[i]) + "eb"; std::string arm_3 = "arm" + (std::string)(Arch[i]); @@ -821,7 +821,7 @@ TEST(TargetParserTest, ARMparseArchEndianAndISA) { } TEST(TargetParserTest, ARMparseArchProfile) { - for (unsigned i = 0; i < array_lengthof(ARMArch); i++) { + for (unsigned i = 0; i < size(ARMArch); i++) { switch (ARM::parseArch(ARMArch[i])) { case ARM::ArchKind::ARMV6M: case ARM::ArchKind::ARMV7M: @@ -861,7 +861,7 @@ TEST(TargetParserTest, ARMparseArchProfile) { } TEST(TargetParserTest, ARMparseArchVersion) { - for (unsigned i = 0; i < array_lengthof(ARMArch); i++) + for (unsigned i = 0; i < size(ARMArch); i++) if (((std::string)ARMArch[i]).substr(0, 4) == "armv") EXPECT_EQ((ARMArch[i][4] - 48u), ARM::parseArchVersion(ARMArch[i])); else @@ -1526,7 +1526,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) { {"pmuv3", "nopmuv3", "+perfmon", "-perfmon"}, }; - for (unsigned i = 0; i < array_lengthof(ArchExt); i++) { + for (unsigned i = 0; i < size(ArchExt); i++) { EXPECT_EQ(StringRef(ArchExt[i][2]), AArch64::getArchExtFeature(ArchExt[i][0])); EXPECT_EQ(StringRef(ArchExt[i][3]), diff --git a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp index 358ef16..be36176 100644 --- a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp +++ b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp @@ -207,7 +207,7 @@ static std::error_code GetFileNameFromHandle(HANDLE FileHandle, Success = ::GetMappedFileNameA(::GetCurrentProcess(), MappedFile, Filename, - array_lengthof(Filename) - 1); + size(Filename) - 1); if (!Success) return windows_error(::GetLastError()); @@ -242,12 +242,12 @@ static std::string FindProgram(const std::string &Program, DWORD length = ::SearchPathA(NULL, Program.c_str(), Extension, - array_lengthof(PathName), + size(PathName), PathName, NULL); if (length == 0) ec = windows_error(::GetLastError()); - else if (length > array_lengthof(PathName)) { + else if (length > size(PathName)) { // This may have been the file, return with error. ec = windows_error(ERROR_BUFFER_OVERFLOW); break; diff --git a/llvm/utils/TableGen/AsmWriterEmitter.cpp b/llvm/utils/TableGen/AsmWriterEmitter.cpp index 9283cee..36ad66f 100644 --- a/llvm/utils/TableGen/AsmWriterEmitter.cpp +++ b/llvm/utils/TableGen/AsmWriterEmitter.cpp @@ -1175,7 +1175,7 @@ void AsmWriterEmitter::EmitPrintAliasInstruction(raw_ostream &O) { O.indent(2) << " makeArrayRef(OpToPatterns),\n"; O.indent(2) << " makeArrayRef(Patterns),\n"; O.indent(2) << " makeArrayRef(Conds),\n"; - O.indent(2) << " StringRef(AsmStrings, array_lengthof(AsmStrings)),\n"; + O.indent(2) << " StringRef(AsmStrings, size(AsmStrings)),\n"; if (MCOpPredicates.empty()) O.indent(2) << " nullptr,\n"; else diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index 2c1583f..b88f251 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -477,7 +477,7 @@ static const char *const FixedInstrs[] = { nullptr}; unsigned CodeGenTarget::getNumFixedInstructions() { - return array_lengthof(FixedInstrs) - 1; + return size(FixedInstrs) - 1; } /// Return all of the instructions defined by the target, ordered by diff --git a/llvm/utils/TableGen/RegisterInfoEmitter.cpp b/llvm/utils/TableGen/RegisterInfoEmitter.cpp index 1ed7bc1..93a59f1 100644 --- a/llvm/utils/TableGen/RegisterInfoEmitter.cpp +++ b/llvm/utils/TableGen/RegisterInfoEmitter.cpp @@ -440,7 +440,7 @@ void RegisterInfoEmitter::EmitRegMappingTables( OS << "extern const unsigned " << Namespace << (j == 0 ? "DwarfFlavour" : "EHFlavour") << I << "Dwarf2LSize"; if (!isCtor) - OS << " = array_lengthof(" << Namespace + OS << " = size(" << Namespace << (j == 0 ? "DwarfFlavour" : "EHFlavour") << I << "Dwarf2L);\n\n"; else OS << ";\n\n"; @@ -498,7 +498,7 @@ void RegisterInfoEmitter::EmitRegMappingTables( OS << "extern const unsigned " << Namespace << (j == 0 ? "DwarfFlavour" : "EHFlavour") << i << "L2DwarfSize"; if (!isCtor) - OS << " = array_lengthof(" << Namespace + OS << " = size(" << Namespace << (j == 0 ? "DwarfFlavour" : "EHFlavour") << i << "L2Dwarf);\n\n"; else OS << ";\n\n"; diff --git a/llvm/utils/TableGen/X86DisassemblerTables.cpp b/llvm/utils/TableGen/X86DisassemblerTables.cpp index d1a9ecb..474dcbd 100644 --- a/llvm/utils/TableGen/X86DisassemblerTables.cpp +++ b/llvm/utils/TableGen/X86DisassemblerTables.cpp @@ -657,7 +657,7 @@ static const char* stringForDecisionType(ModRMDecisionType dt) { } DisassemblerTables::DisassemblerTables() { - for (unsigned i = 0; i < array_lengthof(Tables); i++) + for (unsigned i = 0; i < size(Tables); i++) Tables[i] = std::make_unique<ContextDecision>(); HasConflicts = false; diff --git a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td index 5431baa..3036a72 100644 --- a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td +++ b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td @@ -186,7 +186,7 @@ class Extension<list<I32EnumAttrCase> extensions> : Availability { "}; " # // The following manual ArrayRef constructor call is to satisfy GCC 5. "ArrayRef<::mlir::spirv::Extension> " # - "ref(exts, ::llvm::array_lengthof(exts));"); + "ref(exts, ::llvm::size(exts));"); let instance = "ref"; } @@ -228,7 +228,7 @@ class Capability<list<I32EnumAttrCase> capabilities> : Availability { "}; " # // The following manual ArrayRef constructor call is to satisfy GCC 5. "ArrayRef<::mlir::spirv::Capability> " # - "ref(caps, ::llvm::array_lengthof(caps));"); + "ref(caps, ::llvm::size(caps));"); let instance = "ref"; } diff --git a/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp b/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp index 0562d42..b5559df 100644 --- a/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp +++ b/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp @@ -59,16 +59,16 @@ ArrayRef<spirv::Extension> spirv::getImpliedExtensions(spirv::Version version) { case Version::V_1_3: { // The following manual ArrayRef constructor call is to satisfy GCC 5. static const Extension exts[] = {V_1_3_IMPLIED_EXTS}; - return ArrayRef<spirv::Extension>(exts, llvm::array_lengthof(exts)); + return ArrayRef<spirv::Extension>(exts, llvm::size(exts)); } case Version::V_1_4: { static const Extension exts[] = {V_1_3_IMPLIED_EXTS, V_1_4_IMPLIED_EXTS}; - return ArrayRef<spirv::Extension>(exts, llvm::array_lengthof(exts)); + return ArrayRef<spirv::Extension>(exts, llvm::size(exts)); } case Version::V_1_5: { static const Extension exts[] = {V_1_3_IMPLIED_EXTS, V_1_4_IMPLIED_EXTS, V_1_5_IMPLIED_EXTS}; - return ArrayRef<spirv::Extension>(exts, llvm::array_lengthof(exts)); + return ArrayRef<spirv::Extension>(exts, llvm::size(exts)); } } diff --git a/mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp b/mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp index b66f569..0084b12 100644 --- a/mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp +++ b/mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp @@ -168,7 +168,7 @@ void CompositeType::getCapabilities( auto vecSize = getNumElements(); if (vecSize == 8 || vecSize == 16) { static const Capability caps[] = {Capability::Vector16}; - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); + ArrayRef<Capability> ref(caps, llvm::size(caps)); capabilities.push_back(ref); } return type.getElementType().cast<ScalarType>().getCapabilities( @@ -242,7 +242,7 @@ void CooperativeMatrixNVType::getExtensions( Optional<StorageClass> storage) { getElementType().cast<SPIRVType>().getExtensions(extensions, storage); static const Extension exts[] = {Extension::SPV_NV_cooperative_matrix}; - ArrayRef<Extension> ref(exts, llvm::array_lengthof(exts)); + ArrayRef<Extension> ref(exts, llvm::size(exts)); extensions.push_back(ref); } @@ -251,7 +251,7 @@ void CooperativeMatrixNVType::getCapabilities( Optional<StorageClass> storage) { getElementType().cast<SPIRVType>().getCapabilities(capabilities, storage); static const Capability caps[] = {Capability::CooperativeMatrixNV}; - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); + ArrayRef<Capability> ref(caps, llvm::size(caps)); capabilities.push_back(ref); } @@ -468,7 +468,7 @@ void RuntimeArrayType::getCapabilities( Optional<StorageClass> storage) { { static const Capability caps[] = {Capability::Shader}; - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); + ArrayRef<Capability> ref(caps, llvm::size(caps)); capabilities.push_back(ref); } getElementType().cast<SPIRVType>().getCapabilities(capabilities, storage); @@ -517,7 +517,7 @@ void ScalarType::getExtensions(SPIRVType::ExtensionArrayRefVector &extensions, case StorageClass::Uniform: if (getIntOrFloatBitWidth() == 8) { static const Extension exts[] = {Extension::SPV_KHR_8bit_storage}; - ArrayRef<Extension> ref(exts, llvm::array_lengthof(exts)); + ArrayRef<Extension> ref(exts, llvm::size(exts)); extensions.push_back(ref); } LLVM_FALLTHROUGH; @@ -525,7 +525,7 @@ void ScalarType::getExtensions(SPIRVType::ExtensionArrayRefVector &extensions, case StorageClass::Output: if (getIntOrFloatBitWidth() == 16) { static const Extension exts[] = {Extension::SPV_KHR_16bit_storage}; - ArrayRef<Extension> ref(exts, llvm::array_lengthof(exts)); + ArrayRef<Extension> ref(exts, llvm::size(exts)); extensions.push_back(ref); } break; @@ -547,11 +547,11 @@ void ScalarType::getCapabilities( case StorageClass::storage: { \ if (bitwidth == 8) { \ static const Capability caps[] = {Capability::cap8}; \ - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); \ + ArrayRef<Capability> ref(caps, llvm::size(caps)); \ capabilities.push_back(ref); \ } else if (bitwidth == 16) { \ static const Capability caps[] = {Capability::cap16}; \ - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); \ + ArrayRef<Capability> ref(caps, llvm::size(caps)); \ capabilities.push_back(ref); \ } \ /* No requirements for other bitwidths */ \ @@ -571,7 +571,7 @@ void ScalarType::getCapabilities( case StorageClass::Output: { if (bitwidth == 16) { static const Capability caps[] = {Capability::StorageInputOutput16}; - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); + ArrayRef<Capability> ref(caps, llvm::size(caps)); capabilities.push_back(ref); } return; @@ -588,7 +588,7 @@ void ScalarType::getCapabilities( #define WIDTH_CASE(type, width) \ case width: { \ static const Capability caps[] = {Capability::type##width}; \ - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); \ + ArrayRef<Capability> ref(caps, llvm::size(caps)); \ capabilities.push_back(ref); \ } break @@ -1147,7 +1147,7 @@ void MatrixType::getCapabilities( Optional<StorageClass> storage) { { static const Capability caps[] = {Capability::Matrix}; - ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps)); + ArrayRef<Capability> ref(caps, llvm::size(caps)); capabilities.push_back(ref); } // Add any capabilities associated with the underlying vectors (i.e., columns) |