[PATCH] D14910: [RuntimeDyld] DenseMap -> std::unordered_map

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 24 11:06:32 PST 2015


On Tue, Nov 24, 2015 at 10:58 AM, Keno Fischer via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> loladiro retitled this revision from "[RuntimeDyld] DenseMap -> std::map"
> to "[RuntimeDyld] DenseMap -> std::unordered_map".
> loladiro updated this revision to Diff 41064.
> loladiro added a comment.
>
> Tested with unordered_map. Seems marginally better in my tests, but
> probably not statistically significant given my methodology. Still there's
> no reason the map should be ordered, so might as well use an unordered_map.
>

But DenseMap isn't ordered either, so this doesn't remove ordering - it was
never there.

Might be worth having some more numbers before we'd make that change...


>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D14910
>
> Files:
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
>   lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
>
> Index: lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
> ===================================================================
> --- lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
> +++ lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
> @@ -30,6 +30,7 @@
>  #include "llvm/Support/SwapByteOrder.h"
>  #include "llvm/Support/raw_ostream.h"
>  #include <map>
> +#include <unordered_map>
>  #include <system_error>
>
>  using namespace llvm;
> @@ -229,7 +230,7 @@
>    // Relocations to sections already loaded. Indexed by SectionID which
> is the
>    // source of the address. The target where the address will be written
> is
>    // SectionID/Offset in the relocation itself.
> -  DenseMap<unsigned, RelocationList> Relocations;
> +  std::unordered_map<unsigned, RelocationList> Relocations;
>
>    // Relocations to external symbols that are not yet resolved.  Symbols
> are
>    // external when they aren't found in the global symbol table of all
> loaded
> Index: lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
> ===================================================================
> --- lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
> +++ lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
> @@ -98,11 +98,11 @@
>      // The Section here (Sections[i]) refers to the section in which the
>      // symbol for the relocation is located.  The SectionID in the
> relocation
>      // entry provides the section to which the relocation will be applied.
> -    int Idx = it->getFirst();
> +    int Idx = it->first;
>      uint64_t Addr = Sections[Idx].LoadAddress;
>      DEBUG(dbgs() << "Resolving relocations Section #" << Idx << "\t"
>                   << format("%p", (uintptr_t)Addr) << "\n");
> -    resolveRelocationList(it->getSecond(), Addr);
> +    resolveRelocationList(it->second, Addr);
>    }
>    Relocations.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/20151124/c5a7ac72/attachment.html>


More information about the llvm-commits mailing list