Skip to content

Commit 5465020

Browse files
committed
Deleted old code. Small cleanup
1 parent dd3c72b commit 5465020

File tree

1 file changed

+6
-225
lines changed

1 file changed

+6
-225
lines changed

llvm/tools/llvm-debuginfo-check/llvm-debuginfo-check.cpp

Lines changed: 6 additions & 225 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ template <typename T> T Take(Expected<T> ExpectedResult, const Twine &Msg) {
4545
return ret;
4646
}
4747

48-
struct ScopePrinterMk2 {
49-
48+
struct ScopePrinter {
5049
std::vector<const LVLine *> Lines;
5150
std::unordered_map<LVAddress, std::vector<const LVLocation *>> LivetimeBegins;
5251
std::unordered_map<LVAddress, std::vector<const LVLocation *>>
@@ -95,7 +94,7 @@ struct ScopePrinterMk2 {
9594
}
9695
}
9796

98-
ScopePrinterMk2(raw_ostream &OS, const LVScopeFunction *Fn) : OS(OS) {
97+
ScopePrinter(raw_ostream &OS, const LVScopeFunction *Fn) : OS(OS) {
9998
Walk(OS, Fn);
10099
std::sort(Lines.begin(), Lines.end(),
101100
[](const LVLine *a, const LVLine *b) -> bool {
@@ -105,14 +104,11 @@ struct ScopePrinterMk2 {
105104
return a->getIsLineDebug();
106105
return a->getID() < b->getID();
107106
});
108-
109-
//DumpAllInlineFunctionLevels(Fn);
110107
}
111108

112-
113-
static void PrintIndent(int Indent) {
109+
static void PrintIndent(raw_ostream &OS, int Indent) {
114110
for (int i = 0; i < Indent; i++)
115-
outs() << " ";
111+
OS << " ";
116112
}
117113

118114
static void PrintCallstack(raw_ostream& OS, const LVScope* Scope) {
@@ -132,25 +128,6 @@ struct ScopePrinterMk2 {
132128
}
133129
}
134130

135-
void DumpAllInlineFunctionLevels(const LVScope *Scope) {
136-
if (Scope->getIsInlinedFunction()) {
137-
outs() << Scope->getName() << " ID:" << Scope->getID();
138-
if (Scope->rangeCount()) {
139-
for (auto R : *Scope->getRanges()) {
140-
auto Lo = Scope->getRanges()->front()->getLowerAddress();
141-
auto Hi = Scope->getRanges()->front()->getUpperAddress();
142-
outs() << " [" << hexValue(Lo) << ":"
143-
<< hexValue(Hi) << "]";
144-
}
145-
}
146-
147-
outs() << ", level: " << Scope->getLevel() << "\n";
148-
}
149-
if (Scope->scopeCount())
150-
for (auto S : *Scope->getScopes())
151-
DumpAllInlineFunctionLevels(S);
152-
}
153-
154131
static bool IsChildScopeOf(const LVScope *A, const LVScope *B) {
155132
while (A) {
156133
A = A->getParentScope();
@@ -194,7 +171,7 @@ struct ScopePrinterMk2 {
194171
auto LineScope = LineDebug->getParentScope();
195172
if (SymScope != LineScope && !IsChildScopeOf(LineScope, SymScope))
196173
continue;
197-
PrintIndent(1);
174+
PrintIndent(OS, 1);
198175
OS << "VAR: " << Sym->getName() << ": "
199176
<< Sym->getType()->getName()
200177
<< " : ";
@@ -215,182 +192,6 @@ struct ScopePrinterMk2 {
215192
}
216193
};
217194

218-
struct ScopePrinter {
219-
unsigned NumScopesPrinted = 0;
220-
std::unordered_map<LVAddress, std::vector<const LVLocation *>> LivetimeBegins;
221-
std::unordered_map<LVAddress, std::vector<const LVLocation *>>
222-
LivetimeEndsInclusive;
223-
SetVector<const LVLocation *> LiveSymbols; // This needs to be ordered since we're iterating over it.
224-
std::unordered_set<const LVScope *> SeenScopes;
225-
226-
static void PrintIndent(int Indent) {
227-
for (int i = 0; i < Indent; i++)
228-
outs() << " ";
229-
};
230-
231-
void PrintScope(const LVScope *Scope, int Indent) {
232-
NumScopesPrinted++;
233-
SeenScopes.insert(Scope);
234-
235-
bool IsInlined = false;
236-
if (Scope->getIsInlinedFunction()) {
237-
Indent++;
238-
auto InlinedFn = cast<LVScopeFunctionInlined>(Scope);
239-
IsInlined = true;
240-
PrintIndent(Indent);
241-
outs() << "INLINED_FUNCTION: " << InlinedFn->getName() << "\n";
242-
}
243-
244-
if (const LVSymbols *Symbols = Scope->getSymbols()) {
245-
for (const LVSymbol *Symbol : *Symbols) {
246-
LVLocations SymbolLocations;
247-
Symbol->getLocations(SymbolLocations);
248-
for (const LVLocation *Loc : SymbolLocations) {
249-
if (Loc->getIsGapEntry())
250-
continue;
251-
252-
LVAddress Begin = Loc->getLowerAddress();
253-
LVAddress End = Loc->getUpperAddress();
254-
LivetimeBegins[Begin].push_back(Loc);
255-
LivetimeEndsInclusive[End].push_back(Loc);
256-
if (IncludeRanges) {
257-
outs() << "RANGE: " << Symbol->getName() << ": ["
258-
<< hexValue(Begin) << ":" << hexValue(End) << "]\n";
259-
}
260-
}
261-
}
262-
}
263-
264-
auto Lines = Scope->getLines();
265-
if (Lines) {
266-
int LastLine = -1;
267-
StringRef LastFilename;
268-
for (const LVLine *Line : *Lines) {
269-
270-
if (auto Scopes = Scope->getScopes()) {
271-
for (const LVScope *SubScope : *Scopes) {
272-
if (SeenScopes.count(SubScope))
273-
continue;
274-
#if 0
275-
if (SubScope->getBaseAddress() < Line->getAddress()) {
276-
PrintScope(SubScope, Indent);
277-
}
278-
#else
279-
280-
281-
struct Local {
282-
static LVAddress GetBaseAddress(const LVScope *S) {
283-
if (S->rangeCount()) {
284-
return S->getRanges()->front()->getLowerAddress();
285-
}
286-
if (S->lineCount()) {
287-
return S->getLines()->front()->getAddress();
288-
}
289-
if (S->scopeCount()) {
290-
for (LVScope *SubS : *S->getScopes()) {
291-
LVAddress A = GetBaseAddress(SubS);
292-
if (A != -1)
293-
return A;
294-
}
295-
}
296-
return -1;
297-
};
298-
};
299-
#if 0
300-
auto ScopeLines = SubScope->getLines();
301-
if (ScopeLines && ScopeLines->size() &&
302-
ScopeLines->front()->getAddress() < Line->getAddress()) {
303-
PrintScope(SubScope, Indent);
304-
} else {
305-
outs() << "";
306-
}
307-
#else
308-
unsigned BaseAdress = Local::GetBaseAddress(SubScope);
309-
if (BaseAdress < Line->getAddress()) {
310-
PrintScope(SubScope, Indent);
311-
}
312-
#endif
313-
#endif
314-
}
315-
}
316-
317-
// Update live list: Add lives
318-
for (auto Loc : LivetimeBegins[Line->getAddress()])
319-
LiveSymbols.insert(Loc);
320-
321-
if (Line->getIsLineDebug() && Line->getLineNumber() != 0) {
322-
auto LineDebug = cast<LVLineDebug>(Line);
323-
if (LineDebug->getLineNumber() == 605)
324-
outs() << "";
325-
if (LastLine != LineDebug->getLineNumber() ||
326-
LineDebug->getPathname() != LastFilename) {
327-
PrintIndent(Indent+1);
328-
outs() << "LINE: " << " ["
329-
<< hexValue(LineDebug->getAddress()) << "] "
330-
<< LineDebug->getPathname() << ":"
331-
<< LineDebug->getLineNumber() << "\n";
332-
333-
if (IncludeVars) {
334-
for (auto SymLoc : LiveSymbols) {
335-
PrintIndent(Indent+2);
336-
const LVSymbol *Sym = SymLoc->getParentSymbol();
337-
outs() << "VAR: " << Sym->getName() << ": "
338-
<< Sym->getType()->getName()
339-
<< " : ";
340-
SymLoc->printLocations(outs());
341-
outs() << "\n";
342-
}
343-
}
344-
}
345-
LastLine = LineDebug->getLineNumber();
346-
LastFilename = LineDebug->getPathname();
347-
} else if (Line->getIsLineAssembler()) {
348-
if (IncludeCode)
349-
outs() << " CODE: " << " [" << hexValue(Line->getAddress())
350-
<< "] " << Line->getName() << "\n";
351-
}
352-
353-
// Update live list: remove dead
354-
for (auto Loc : LivetimeEndsInclusive[Line->getAddress()])
355-
LiveSymbols.remove(Loc);
356-
}
357-
} else if (Scope->scopeCount()) {
358-
for (auto SubS : *Scope->getScopes()) {
359-
PrintScope(SubS, Indent);
360-
}
361-
}
362-
363-
if (IsInlined) {
364-
PrintIndent(Indent);
365-
outs() << "END_INLINED_FUNCTION\n";
366-
Indent--;
367-
}
368-
}
369-
370-
static unsigned CountScopes(const LVScope *Scope) {
371-
unsigned Count = 0;
372-
auto Scopes = Scope->getScopes();
373-
if (Scopes) {
374-
for (auto S : *Scopes)
375-
Count += CountScopes(S);
376-
}
377-
return Count + 1;
378-
}
379-
380-
std::vector<const LVScope *> UnseenScopes;
381-
void CollectUnsceenScopes(const LVScope *Scope) {
382-
if (!SeenScopes.count(Scope)) {
383-
UnseenScopes.push_back(Scope);
384-
Scope->dump();
385-
}
386-
if (Scope->scopeCount()) {
387-
for (auto S : *Scope->getScopes())
388-
CollectUnsceenScopes(S);
389-
}
390-
}
391-
392-
};
393-
394195
int main(int argc, char *argv[]) {
395196
InitLLVM X(argc, argv);
396197

@@ -428,28 +229,8 @@ int main(int argc, char *argv[]) {
428229
continue;
429230
outs() << "FUNCTION: " << Child->getName() << "\n";
430231

431-
#if 0
432-
ScopePrinter P;
433-
P.PrintScope(Fn, 0);
434-
435-
P.CollectUnsceenScopes(Fn);
436-
437-
for (auto S : P.UnseenScopes) {
438-
if (S->symbolCount()) {
439-
for (auto Sym : *S->getSymbols())
440-
outs() << Sym->getName() << ": " << Sym->getTypeName() << " (line"
441-
<< Sym->getLineNumber() << ")" << "\n";
442-
}
443-
}
444-
445-
//unsigned NumScopes = ScopePrinter::CountScopes(Fn);
446-
447-
outs() << "";
448-
#else
449-
ScopePrinterMk2 P(outs(), Fn);
232+
ScopePrinter P(outs(), Fn);
450233
P.Print();
451-
#endif
452-
453234
}
454235
}
455236

0 commit comments

Comments
 (0)