From d8b587de3b7b301e5894abd3b309d55895b1bf63 Mon Sep 17 00:00:00 2001 From: Frederic Riss Date: Tue, 10 Mar 2015 03:47:55 +0000 Subject: [PATCH] DwarfAccelTable: remove unneeded bucket terminators. Last commit fixed the handling of hash collisions, but it introdcuced unneeded bucket terminators in some places. The generated table was correct, it can just be a tiny bit smaller. As the previous table was correct, the test doesn't need updating. If we really wanted to test this, I could add the section size to the dwarf dump and test for a precise value there. IMO the correctness test is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231748 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp b/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp index 09c47356adc..c19325952b1 100644 --- a/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp @@ -205,8 +205,8 @@ void DwarfAccelTable::EmitOffsets(AsmPrinter *Asm, MCSymbol *SecBegin) { // Terminate each HashData bucket with 0. void DwarfAccelTable::EmitData(AsmPrinter *Asm, DwarfDebug *D, MCSymbol *StrSym) { - uint64_t PrevHash = UINT64_MAX; for (size_t i = 0, e = Buckets.size(); i < e; ++i) { + uint64_t PrevHash = UINT64_MAX; for (HashList::const_iterator HI = Buckets[i].begin(), HE = Buckets[i].end(); HI != HE; ++HI) { @@ -235,7 +235,8 @@ void DwarfAccelTable::EmitData(AsmPrinter *Asm, DwarfDebug *D, PrevHash = (*HI)->HashValue; } // Emit the final end marker for the bucket. - Asm->EmitInt32(0); + if (!Buckets[i].empty()) + Asm->EmitInt32(0); } } -- 2.34.1