summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARFUnit.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [DWARF parser] Compress DIEMinimal even further, simplify building DIE tree.Alexey Samsonov2014-04-291-31/+24
| | | | | | | | | | | DIE doesn't need to store a pointer to its parent: we can traverse the DIE tree only with functions getFirstChild() and getSibling(). Parents must be known only when we construct the tree. Rewrite setDIERelations() procedure in a more straightforward way, and get rid of lots of now unused DIEMinimal methods. No functionality change. llvm-svn: 207563
* [DWARF parser] Make a few methods non-publicAlexey Samsonov2014-04-241-4/+4
| | | | llvm-svn: 207156
* [DWARF parser] DWARFUnit ctor doesn't need both parsed and raw .debug_abbrev ↵Alexey Samsonov2014-04-241-12/+14
| | | | | | section. Remove the former. llvm-svn: 207153
* [DWARF parser] Respect address ranges specified in compile unit DIE.Alexey Samsonov2014-04-181-0/+7
| | | | | | | | | | | When address ranges for compile unit are specified in compile unit DIE itself, there is no need to collect ranges from children subprogram DIEs. This change speeds up llvm-symbolizer on Clang-produced binaries with full debug info. For instance, symbolizing a first address in a 1Gb binary is now 2x faster (1s vs. 2s). llvm-svn: 206641
* [DWARF parser] Refactor fetching DIE address ranges.Alexey Samsonov2014-04-181-16/+9
| | | | | | | | | | Add a helper method to get address ranges specified in a DIE (either by DW_AT_low_pc/DW_AT_high_pc, or by DW_AT_ranges). Use it to untangle and simplify the code. No functionality change. llvm-svn: 206624
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-151-12/+12
| | | | | | instead of comparing to nullptr. llvm-svn: 206252
* [C++11] Convert DWARF parser to range-based for loopsAlexey Samsonov2014-03-131-4/+5
| | | | llvm-svn: 203766
* Change createObjectFile to return an ErrorOr.Rafael Espindola2014-01-221-2/+2
| | | | llvm-svn: 199776
* DWARFUnit: kill dead code and make a couple of functions private. No ↵Alexey Samsonov2013-10-311-24/+0
| | | | | | functionality change. llvm-svn: 193780
* DWARF parser: Use ArrayRef to represent form sizes and simplify ↵Alexey Samsonov2013-10-281-4/+1
| | | | | | DWARFDIE::extractFast() interface. No functionality change. llvm-svn: 193560
* DebugInfo: Introduce the notion of "form classes"Alexey Samsonov2013-10-281-8/+8
| | | | | | | | | | | | | | | | | | Summary: Use DWARF4 table of form classes to fetch attributes from DIE in a more consistent way. This shouldn't change the functionality and serves as a refactoring for upcoming change: DW_AT_high_pc has different semantics depending on its form class. Reviewers: dblaikie, echristo Reviewed By: echristo CC: echristo, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1961 llvm-svn: 193553
* Unbreak the build (from r191233)since we're calling printf.David Blaikie2013-09-231-0/+1
| | | | llvm-svn: 191238
* Exract most of DWARFCompileUnit into a new DWARFUnit to prepare for the ↵David Blaikie2013-09-231-0/+391
coming DWARFTypeUnit. llvm-svn: 191233
OpenPOWER on IntegriCloud