Use shorter names for the .gnu.hash class.

llvm-svn: 261067
This commit is contained in:
Rui Ueyama 2016-02-17 05:40:03 +00:00
parent 91c0a5db01
commit 861c731ccc
2 changed files with 13 additions and 13 deletions

View File

@ -434,10 +434,10 @@ void GnuHashTableSection<ELFT>::writeBloomFilter(uint8_t *&Buf) {
unsigned C = sizeof(Elf_Off) * 8;
auto *Masks = reinterpret_cast<Elf_Off *>(Buf);
for (const HashedSymbolData &Item : Symbols) {
size_t Pos = (Item.Hash / C) & (MaskWords - 1);
uintX_t V = (uintX_t(1) << (Item.Hash % C)) |
(uintX_t(1) << ((Item.Hash >> Shift2) % C));
for (const SymbolData &Sym : Symbols) {
size_t Pos = (Sym.Hash / C) & (MaskWords - 1);
uintX_t V = (uintX_t(1) << (Sym.Hash % C)) |
(uintX_t(1) << ((Sym.Hash >> Shift2) % C));
Masks[Pos] |= V;
}
Buf += sizeof(Elf_Off) * MaskWords;
@ -450,16 +450,16 @@ void GnuHashTableSection<ELFT>::writeHashTable(uint8_t *Buf) {
int PrevBucket = -1;
int I = 0;
for (const HashedSymbolData &Item : Symbols) {
int Bucket = Item.Hash % NBuckets;
for (const SymbolData &Sym : Symbols) {
int Bucket = Sym.Hash % NBuckets;
assert(PrevBucket <= Bucket);
if (Bucket != PrevBucket) {
Buckets[Bucket] = Item.Body->DynsymIndex;
Buckets[Bucket] = Sym.Body->DynsymIndex;
PrevBucket = Bucket;
if (I > 0)
Values[I - 1] |= 1;
}
Values[I] = Item.Hash & ~1;
Values[I] = Sym.Hash & ~1;
++I;
}
if (I > 0)
@ -491,13 +491,13 @@ void GnuHashTableSection<ELFT>::addSymbols(
unsigned NBuckets = calcNBuckets(Symbols.size());
std::stable_sort(Symbols.begin(), Symbols.end(),
[&](const HashedSymbolData &L, const HashedSymbolData &R) {
[&](const SymbolData &L, const SymbolData &R) {
return L.Hash % NBuckets < R.Hash % NBuckets;
});
V.erase(Mid, V.end());
for (const HashedSymbolData &Item : Symbols)
V.push_back({Item.Body, Item.STName});
for (const SymbolData &Sym : Symbols)
V.push_back({Sym.Body, Sym.STName});
}
template <class ELFT>

View File

@ -411,13 +411,13 @@ private:
void writeBloomFilter(uint8_t *&Buf);
void writeHashTable(uint8_t *Buf);
struct HashedSymbolData {
struct SymbolData {
SymbolBody *Body;
size_t STName;
uint32_t Hash;
};
std::vector<HashedSymbolData> Symbols;
std::vector<SymbolData> Symbols;
unsigned MaskWords;
unsigned NBuckets;