|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | Keep the actual section contents and the relocation map together.
llvm-svn: 219261 | 
| | 
| 
| 
| | llvm-svn: 219259 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary: No functional change.
Reviewers: dblaikie, samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5522
llvm-svn: 219098 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | A DWARFUnitSection is the collection of Units that have been extracted from
the same debug section.
By embeding a reference to their DWARFUnitSection in each unit, the DIEs
will be able to resolve inter-unit references by interrogating their Unit's
DWARFUnitSection.
This is a minimal patch where the DWARFUnitSection is-a SmallVector of Units,
thus exposing exactly the same interface as before. Followup-up patches might
change from inheritance to composition in order to expose only the wanted
DWARFUnitSection abstraction.
    Differential Revision: http://reviews.llvm.org/D5310
llvm-svn: 217747 | 
| | 
| 
| 
| 
| 
| 
| | Forge a test case where llvm-symbolizer has to use external .dwo
file to produce the inlining information.
llvm-svn: 217270 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | The DWARFContext will be used to pass global 'context' down, like
pointers to related debug info sections or command line options.
The first use will be for the debug_info dumper to be able to access
other debug info section to dump eg. Location Expression inline
in the debug_info dump.
llvm-svn: 217128 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Owning the buffer is somewhat inflexible. Some Binaries have sub Binaries
(like Archive) and we had to create dummy buffers just to handle that. It is
also a bad fit for IRObjectFile where the Module wants to own the buffer too.
Keeping this ownership would make supporting IR inside native objects
particularly painful.
This patch focuses in lib/Object. If something elsewhere used to own an Binary,
now it also owns a MemoryBuffer.
This patch introduces a few new types.
* MemoryBufferRef. This is just a pair of StringRefs for the data and name.
  This is to MemoryBuffer as StringRef is to std::string.
* OwningBinary. A combination of Binary and a MemoryBuffer. This is needed
  for convenience functions that take a filename and return both the
  buffer and the Binary using that buffer.
The C api now uses OwningBinary to avoid any change in semantics. I will start
a new thread to see if we want to change it and how.
llvm-svn: 216002 | 
| | 
| 
| 
| 
| 
| | Thanks to David Blaikie for noticing it.
llvm-svn: 214434 | 
| | 
| 
| 
| 
| 
| | This makes using a std::unique_ptr in the caller more convenient.
llvm-svn: 214433 | 
| | 
| 
| 
| | llvm-svn: 214377 | 
| | 
| 
| 
| 
| 
| | DW_AT_GNU_ranges_base instead of DWARF version
llvm-svn: 210945 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | DIEs.
Turns out that DW_AT_ranges_base attribute sets the offset for
DW_AT_ranges values specified in the .dwo file, but not for DW_AT_ranges specified
in the skeleton compile unit DIE in the main executable. This is extremely confusing,
and would hopefully be fixed in DWARF-5 when it's finalized. For now this
behavior makes sense, as otherwise Fission would break DWARF consumers who
doesn't know anything about DW_AT_ranges_base.
llvm-svn: 210809 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 207156 | 
| | 
| 
| 
| 
| 
| | section. Remove the former.
llvm-svn: 207153 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | instead of comparing to nullptr.
llvm-svn: 206252 | 
| | 
| 
| 
| | llvm-svn: 203766 | 
| | 
| 
| 
| | llvm-svn: 199776 | 
| | 
| 
| 
| 
| 
| | functionality change.
llvm-svn: 193780 | 
| | 
| 
| 
| 
| 
| | DWARFDIE::extractFast() interface. No functionality change.
llvm-svn: 193560 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 191238 | 
|  | coming DWARFTypeUnit.
llvm-svn: 191233 |