diff options
author | Rui Ueyama <ruiu@google.com> | 2017-03-02 17:55:29 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2017-03-02 17:55:29 +0000 |
commit | 8139eab3c3b50155e5333f201745765e9492e3d3 (patch) | |
tree | 229026672ec195564f8f0bc366c2d8f8c646f303 | |
parent | fcbb7d10fe777e2afba891c6e19ef0013c3f6963 (diff) | |
download | bcm5719-llvm-8139eab3c3b50155e5333f201745765e9492e3d3.tar.gz bcm5719-llvm-8139eab3c3b50155e5333f201745765e9492e3d3.zip |
Simplify. NFC.
llvm-svn: 296773
-rw-r--r-- | lld/ELF/GdbIndex.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/lld/ELF/GdbIndex.cpp b/lld/ELF/GdbIndex.cpp index 5cca07a328b..940313dc0ed 100644 --- a/lld/ELF/GdbIndex.cpp +++ b/lld/ELF/GdbIndex.cpp @@ -77,22 +77,17 @@ std::pair<bool, GdbSymbol *> GdbHashTab::add(uint32_t Hash, size_t Offset) { } void GdbHashTab::finalizeContents() { - Table.resize(std::max<uint64_t>(1024, NextPowerOf2(Map.size() * 4 / 3))); + uint32_t Size = std::max<uint32_t>(1024, NextPowerOf2(Map.size() * 4 / 3)); + uint32_t Mask = Size - 1; + Table.resize(Size); for (auto &P : Map) { GdbSymbol *Sym = P.second; + uint32_t I = Sym->NameHash & Mask; + uint32_t Step = ((Sym->NameHash * 17) & Mask) | 1; - uint32_t I = Sym->NameHash & (Table.size() - 1); - uint32_t Step = ((Sym->NameHash * 17) & (Table.size() - 1)) | 1; - - for (;;) { - if (Table[I]) { - I = (I + Step) & (Table.size() - 1); - continue; - } - - Table[I] = Sym; - break; - } + while (Table[I]) + I = (I + Step) & Mask; + Table[I] = Sym; } } |