[lld] r246662 - Remove an allocator which was used for just one allocation.

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 2 12:19:21 PDT 2015


Same change probably needs to be made to COFF/InputFiles.h:111

On Wed, Sep 2, 2015 at 9:07 AM, Rafael Espindola via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rafael
> Date: Wed Sep  2 11:07:11 2015
> New Revision: 246662
>
> URL: http://llvm.org/viewvc/llvm-project?rev=246662&view=rev
> Log:
> Remove an allocator which was used for just one allocation.
>
> Modified:
>     lld/trunk/COFF/InputFiles.cpp
>     lld/trunk/COFF/InputFiles.h
>     lld/trunk/COFF/SymbolTable.cpp
>
> Modified: lld/trunk/COFF/InputFiles.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/InputFiles.cpp?rev=246662&r1=246661&r2=246662&view=diff
>
> ==============================================================================
> --- lld/trunk/COFF/InputFiles.cpp (original)
> +++ lld/trunk/COFF/InputFiles.cpp Wed Sep  2 11:07:11 2015
> @@ -58,13 +58,11 @@ void ArchiveFile::parse() {
>
>    // Allocate a buffer for Lazy objects.
>    size_t NumSyms = File->getNumberOfSymbols();
> -  size_t BufSize = NumSyms * sizeof(Lazy);
> -  Lazy *Buf = (Lazy *)Alloc.Allocate(BufSize, llvm::alignOf<Lazy>());
>    LazySymbols.reserve(NumSyms);
>
>    // Read the symbol table to construct Lazy objects.
>    for (const Archive::Symbol &Sym : File->symbols())
> -    LazySymbols.push_back(new (Buf++) Lazy(this, Sym));
> +    LazySymbols.emplace_back(this, Sym);
>
>    // Seen is a map from member files to boolean values. Initially
>    // all members are mapped to false, which indicates all these files
>
> Modified: lld/trunk/COFF/InputFiles.h
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/InputFiles.h?rev=246662&r1=246661&r2=246662&view=diff
>
> ==============================================================================
> --- lld/trunk/COFF/InputFiles.h (original)
> +++ lld/trunk/COFF/InputFiles.h Wed Sep  2 11:07:11 2015
> @@ -98,7 +98,7 @@ public:
>    // (So that we don't instantiate same members more than once.)
>    MemoryBufferRef getMember(const Archive::Symbol *Sym);
>
> -  std::vector<Lazy *> &getLazySymbols() { return LazySymbols; }
> +  llvm::MutableArrayRef<Lazy> getLazySymbols() { return LazySymbols; }
>
>    // All symbols returned by ArchiveFiles are of Lazy type.
>    std::vector<SymbolBody *> &getSymbols() override {
> @@ -108,9 +108,8 @@ public:
>  private:
>    std::unique_ptr<Archive> File;
>    std::string Filename;
> -  std::vector<Lazy *> LazySymbols;
> +  std::vector<Lazy> LazySymbols;
>    std::map<uint64_t, std::atomic_flag> Seen;
> -  llvm::MallocAllocator Alloc;
>  };
>
>  // .obj or .o file. This may be a member of an archive file.
>
> Modified: lld/trunk/COFF/SymbolTable.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/SymbolTable.cpp?rev=246662&r1=246661&r2=246662&view=diff
>
> ==============================================================================
> --- lld/trunk/COFF/SymbolTable.cpp (original)
> +++ lld/trunk/COFF/SymbolTable.cpp Wed Sep  2 11:07:11 2015
> @@ -63,8 +63,8 @@ void SymbolTable::readArchives() {
>      if (Config->Verbose)
>        llvm::outs() << "Reading " << File->getShortName() << "\n";
>      File->parse();
> -    for (Lazy *Sym : File->getLazySymbols())
> -      addLazy(Sym, &LazySyms);
> +    for (Lazy &Sym : File->getLazySymbols())
> +      addLazy(&Sym, &LazySyms);
>    }
>    ArchiveQueue.clear();
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150902/0a4377b0/attachment.html>


More information about the llvm-commits mailing list