projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rework adding function names to the dwarf accelerator tables, allow
[oota-llvm.git]
/
lib
/
CodeGen
/
AsmPrinter
/
DwarfAccelTable.cpp
diff --git
a/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
b/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
index 7c93dbf5b9a55faa0379a8c1beba726f4753f593..a3a24887615eab7a8ccd3eb0228c7cb314490178 100644
(file)
--- a/
lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
+++ b/
lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
@@
-75,9
+75,15
@@
void DwarfAccelTable::ComputeBucketCount(void) {
void DwarfAccelTable::FinalizeTable(AsmPrinter *Asm, const char *Prefix) {
// Create the individual hash data outputs.
void DwarfAccelTable::FinalizeTable(AsmPrinter *Asm, const char *Prefix) {
// Create the individual hash data outputs.
- for (StringMap<DIEArray>::
const_
iterator
+ for (StringMap<DIEArray>::iterator
EI = Entries.begin(), EE = Entries.end(); EI != EE; ++EI) {
struct HashData *Entry = new HashData((*EI).getKeyData());
EI = Entries.begin(), EE = Entries.end(); EI != EE; ++EI) {
struct HashData *Entry = new HashData((*EI).getKeyData());
+
+ // Unique the entries.
+ std::sort((*EI).second.begin(), (*EI).second.end());
+ (*EI).second.erase(std::unique((*EI).second.begin(), (*EI).second.end()),
+ (*EI).second.end());
+
for (DIEArray::const_iterator DI = (*EI).second.begin(),
DE = (*EI).second.end();
DI != DE; ++DI)
for (DIEArray::const_iterator DI = (*EI).second.begin(),
DE = (*EI).second.end();
DI != DE; ++DI)