summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARFCompileUnit.h
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-07-15 08:43:35 +0000
committerAlexey Samsonov <samsonov@google.com>2013-07-15 08:43:35 +0000
commit1a98450469dd7592239f3662d01ee1915fb4dbc5 (patch)
treea4250f454189f714dbdd1f0399409466a166a45d /llvm/lib/DebugInfo/DWARFCompileUnit.h
parentd6d31aceea3051cdc83263aa7eb7a9ea6ca00d78 (diff)
downloadbcm5719-llvm-1a98450469dd7592239f3662d01ee1915fb4dbc5.tar.gz
bcm5719-llvm-1a98450469dd7592239f3662d01ee1915fb4dbc5.zip
DebugInfo: Factor out parsing compile unit DIEs to a separate function. Improve code style and comments.
No functionality change. llvm-svn: 186315
Diffstat (limited to 'llvm/lib/DebugInfo/DWARFCompileUnit.h')
-rw-r--r--llvm/lib/DebugInfo/DWARFCompileUnit.h34
1 files changed, 10 insertions, 24 deletions
diff --git a/llvm/lib/DebugInfo/DWARFCompileUnit.h b/llvm/lib/DebugInfo/DWARFCompileUnit.h
index 2a74605fcb2..071be905e6f 100644
--- a/llvm/lib/DebugInfo/DWARFCompileUnit.h
+++ b/llvm/lib/DebugInfo/DWARFCompileUnit.h
@@ -39,7 +39,7 @@ class DWARFCompileUnit {
const DWARFAbbreviationDeclarationSet *Abbrevs;
uint8_t AddrSize;
uint64_t BaseAddr;
- // The compile unit debug information entry item.
+ // The compile unit debug information entry items.
std::vector<DWARFDebugInfoEntryMinimal> DieArray;
public:
@@ -64,7 +64,7 @@ public:
/// extractDIEsIfNeeded - Parses a compile unit and indexes its DIEs if it
/// hasn't already been done. Returns the number of DIEs parsed at this call.
- size_t extractDIEsIfNeeded(bool cu_die_only);
+ size_t extractDIEsIfNeeded(bool CUDieOnly);
/// extractRangeList - extracts the range list referenced by this compile
/// unit from .debug_ranges section. Returns true on success.
/// Requires that compile unit is already extracted.
@@ -98,9 +98,7 @@ public:
const DWARFDebugInfoEntryMinimal *
getCompileUnitDIE(bool extract_cu_die_only = true) {
extractDIEsIfNeeded(extract_cu_die_only);
- if (DieArray.empty())
- return NULL;
- return &DieArray[0];
+ return DieArray.empty() ? NULL : &DieArray[0];
}
const char *getCompilationDir();
@@ -110,25 +108,6 @@ public:
/// parent, sibling and child pointers for quick DIE navigation.
void setDIERelations();
- void addDIE(DWARFDebugInfoEntryMinimal &die) {
- // The average bytes per DIE entry has been seen to be
- // around 14-20 so lets pre-reserve the needed memory for
- // our DIE entries accordingly. Search forward for "Compute
- // average bytes per DIE" to see #if'ed out code that does
- // that determination.
-
- // Only reserve the memory if we are adding children of
- // the main compile unit DIE. The compile unit DIE is always
- // the first entry, so if our size is 1, then we are adding
- // the first compile unit child DIE and should reserve
- // the memory.
- if (DieArray.empty())
- DieArray.reserve(getDebugInfoSize() / 14);
- DieArray.push_back(die);
- }
-
- void clearDIEs(bool keep_compile_unit_die);
-
void buildAddressRangeTable(DWARFDebugAranges *debug_aranges,
bool clear_dies_if_already_not_parsed);
@@ -136,6 +115,13 @@ public:
/// Returns empty chain if there is no subprogram containing address.
DWARFDebugInfoEntryMinimal::InlinedChain getInlinedChainForAddress(
uint64_t Address);
+
+private:
+ /// extractDIEsToVector - Appends all parsed DIEs to a vector.
+ void extractDIEsToVector(bool AppendCUDie, bool AppendNonCUDIEs,
+ std::vector<DWARFDebugInfoEntryMinimal> &DIEs) const;
+ /// clearDIEs - Clear parsed DIEs to keep memory usage low.
+ void clearDIEs(bool KeepCUDie);
};
}
OpenPOWER on IntegriCloud