forked from OSchip/llvm-project
Move simple case earlier and use a continue.
llvm-svn: 227841
This commit is contained in:
parent
202f22bbda
commit
6ffb1d7e3c
|
@ -1834,6 +1834,19 @@ void DwarfDebug::emitDebugARanges() {
|
|||
if (List.size() < 2)
|
||||
continue;
|
||||
|
||||
// If we have no section (e.g. common), just write out
|
||||
// individual spans for each symbol.
|
||||
if (!Section) {
|
||||
for (const SymbolCU &Cur : List) {
|
||||
ArangeSpan Span;
|
||||
Span.Start = Cur.Sym;
|
||||
Span.End = nullptr;
|
||||
if (Cur.CU)
|
||||
Spans[Cur.CU].push_back(Span);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Sort the symbols by offset within the section.
|
||||
std::sort(List.begin(), List.end(),
|
||||
[&](const SymbolCU &A, const SymbolCU &B) {
|
||||
|
@ -1849,31 +1862,19 @@ void DwarfDebug::emitDebugARanges() {
|
|||
return IA < IB;
|
||||
});
|
||||
|
||||
// If we have no section (e.g. common), just write out
|
||||
// individual spans for each symbol.
|
||||
if (!Section) {
|
||||
for (const SymbolCU &Cur : List) {
|
||||
ArangeSpan Span;
|
||||
Span.Start = Cur.Sym;
|
||||
Span.End = nullptr;
|
||||
if (Cur.CU)
|
||||
Spans[Cur.CU].push_back(Span);
|
||||
}
|
||||
} else {
|
||||
// Build spans between each label.
|
||||
const MCSymbol *StartSym = List[0].Sym;
|
||||
for (size_t n = 1, e = List.size(); n < e; n++) {
|
||||
const SymbolCU &Prev = List[n - 1];
|
||||
const SymbolCU &Cur = List[n];
|
||||
// Build spans between each label.
|
||||
const MCSymbol *StartSym = List[0].Sym;
|
||||
for (size_t n = 1, e = List.size(); n < e; n++) {
|
||||
const SymbolCU &Prev = List[n - 1];
|
||||
const SymbolCU &Cur = List[n];
|
||||
|
||||
// Try and build the longest span we can within the same CU.
|
||||
if (Cur.CU != Prev.CU) {
|
||||
ArangeSpan Span;
|
||||
Span.Start = StartSym;
|
||||
Span.End = Cur.Sym;
|
||||
Spans[Prev.CU].push_back(Span);
|
||||
StartSym = Cur.Sym;
|
||||
}
|
||||
// Try and build the longest span we can within the same CU.
|
||||
if (Cur.CU != Prev.CU) {
|
||||
ArangeSpan Span;
|
||||
Span.Start = StartSym;
|
||||
Span.End = Cur.Sym;
|
||||
Spans[Prev.CU].push_back(Span);
|
||||
StartSym = Cur.Sym;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue