Skip to content
  1. Mar 26, 2014
  2. Mar 25, 2014
    • David Blaikie's avatar
      DebugInfo: Add GNU_addr_base and GNU_ranges_base only when there are addresses or ranges · 3ffe4dd6
      David Blaikie authored
      Based on code review feedback from Eric in r204672.
      
      llvm-svn: 204702
      3ffe4dd6
    • David Blaikie's avatar
      DebugInfo: Support debug_loc under fission · 9c550ac4
      David Blaikie authored
      Implement debug_loc.dwo, as well as llvm-dwarfdump support for dumping
      this section.
      
      Outlined in the DWARF5 spec and http://gcc.gnu.org/wiki/DebugFission the
      debug_loc.dwo section has more variation than the standard debug_loc,
      allowing 3 different forms of entry (plus the end of list entry). GCC
      seems to, and Clang certainly, only use one form, so I've just
      implemented dumping support for that for now.
      
      It wasn't immediately obvious that there was a good refactoring to share
      the implementation of dumping support between debug_loc and
      debug_loc.dwo, so they're separate for now - ideas welcome or I may come
      back to it at some point.
      
      As per a comment in the code, we could choose different forms that may
      reduce the number of debug_addr entries we emit, but that will require
      further study.
      
      llvm-svn: 204697
      9c550ac4
    • David Blaikie's avatar
      DebugInfo: Remove unnecessary zero-size check · 2d33d6a4
      David Blaikie authored
      This seems excessive - switching section isn't expensive (or if it is
      we're already being wasteful, since we emitted the debug_loc section
      symbol earlier anyway) and otherwise there's no work that happens in
      this function when the list is empty.
      
      llvm-svn: 204696
      2d33d6a4
  3. Mar 24, 2014
  4. Mar 21, 2014
  5. Mar 20, 2014
    • Eric Christopher's avatar
      Typo. · 47f2be88
      Eric Christopher authored
      llvm-svn: 204378
      47f2be88
    • Eric Christopher's avatar
      Reapply DW_AT_low/high_pc patch: · 384f3feb
      Eric Christopher authored
          Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc.
      
          This commit moves us from a single range per subprogram to extending
          ranges if we are:
      
          a) In the same section, and
          b) In the same enclosing CU.
      
          This means we have more fine grained ranges for compile units, and fewer
          ranges overall when we have multiple functions in the same CU
          adjacent to each other in the object file.
      
          Also remove all of the earlier hacks around this functionality for
          function sections etc. Also update all of the testcases to take into
          account the merging functionality.
      
      with a fix for location entries in the debug_loc section:
      
      Make sure that debug loc entries are relative to the low_pc
      of the compile unit. This means that when we only have a single
      range that the offset should be just relative to the low_pc
      of the unit, for multiple ranges for a CU this means that we'll be
      relative to 0 which we emit along with DW_AT_ranges.
      
      This mostly shows up with linked binaries, so add a testcase with
      multiple CUs so that our location is going to be offset of a CU
      with a non-zero low_pc.
      
      llvm-svn: 204377
      384f3feb
    • David Blaikie's avatar
      Add comments from Eric's review of r204094. · 7ac51493
      David Blaikie authored
      llvm-svn: 204358
      7ac51493
    • Eric Christopher's avatar
      Revert "Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc." · e9551ec1
      Eric Christopher authored
      This appears to trigger failures with optimization and function arguments somehow.
      
      This reverts commit r204277.
      
      llvm-svn: 204286
      e9551ec1
  6. Mar 19, 2014
    • Eric Christopher's avatar
      Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc. · e33c9906
      Eric Christopher authored
      This commit moves us from a single range per subprogram to extending
      ranges if we are:
      
      a) In the same section, and
      b) In the same enclosing CU.
      
      This means we have more fine grained ranges for compile units, and fewer
      ranges overall when we have multiple functions in the same CU
      adjacent to each other in the object file.
      
      Also remove all of the earlier hacks around this functionality for
      function sections etc. Also update all of the testcases to take into
      account the merging functionality.
      
      llvm-svn: 204277
      e33c9906
    • David Blaikie's avatar
      DebugInfo: Use the comp_dir of the referencing type units when building debug_line.dwo · 47f4b82d
      David Blaikie authored
      This isn't a complete fix - it falls back to non-comp_dir when multiple
      compile units are in play. Adding a map of comp_dir to table is part of
      the more general solution, but I gave up (in the short term) when I
      realized I'd also have to calculate the size of each type unit so as to
      produce correct DW_AT_stmt_list attributes.
      
      llvm-svn: 204202
      47f4b82d
  7. Mar 18, 2014
  8. Mar 17, 2014
    • David Blaikie's avatar
      DebugInfo: Use MC line table file entry uniquing for non-asm input as well. · c2df16b6
      David Blaikie authored
      See r204027 for the precursor to this that applied to asm debug info.
      
      This required some non-obvious API changes to handle the case of asm
      output (we never go asm->asm so this didn't come up in r204027): the
      modification of the file/directory name by MCDwarfLineTableHeader needed
      to be reflected in the MCAsmStreamer caller so it could print the
      appropriate .file directive, so those StringRef parameters are now
      non-const ref (in/out) parameters rather than just const.
      
      llvm-svn: 204069
      c2df16b6
  9. Mar 15, 2014
Loading