Skip to content
  1. Jun 16, 2013
    • David Blaikie's avatar
      Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions · 0252265b
      David Blaikie authored
      Rather than using the full power of target-specific addressing modes in
      DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This
      reduces the complexity of debug info handling down to two
      representations of values (reg+offset and frame index+offset) rather
      than three or four.
      
      Ideally we could ensure that frame indicies had been eliminated by the
      time we reached an assembly or dwarf generation, but I haven't spent the
      time to figure out where the FIs are leaking through into that & whether
      there's a good place to convert them. Some FI+offset=>reg+offset
      conversion is done (see PrologEpilogInserter, for example) which is
      necessary for some SelectionDAG assumptions about registers, I believe,
      but it might be possible to make this a more thorough conversion &
      ensure there are no remaining FIs no matter how instruction selection
      is performed.
      
      llvm-svn: 184066
      0252265b
  2. Jun 07, 2013
  3. Jun 06, 2013
    • David Blaikie's avatar
      Debug Info: simplify parameter ordering preservation · 36d5d2f0
      David Blaikie authored
      Seems we emit the parameter ordering number (spuriously named 'arg
      number') in the debug info, so there's no need to search through the
      variable list to figure out the parameter ordering. This implementation
      does 'always' do the work, even in non-optimized debug info (the
      previous implementation checked the existence of the 'variables' list on
      the subprogram which is only present in optimized builds).
      
      No intended functionality change.
      
      llvm-svn: 183446
      36d5d2f0
  4. Jun 05, 2013
    • David Blaikie's avatar
      PR15662: Optimized debug info produces out of order function parameters · 6f1a8067
      David Blaikie authored
      When a function is inlined we lazily construct the variables
      representing the function's parameters. After that, we add any remaining
      unused parameters.
      
      If the function doesn't use all the parameters, or uses them out of
      order, then the DWARF would produce them in that order, producing a
      parameter order that doesn't match the source.
      
      This fix causes us to always keep the arg variables at the start of the
      variable list & in the original order from the source.
      
      llvm-svn: 183297
      6f1a8067
  5. Jun 01, 2013
  6. May 30, 2013
  7. May 29, 2013
    • Manman Ren's avatar
      LTO+Debug Info: revert r182791. · 4213c39e
      Manman Ren authored
      Since the testing case uses ref_addr, which requires version 3+ to work,
      we will solve the dwarf version issue first.
      
      This patch also causes failures in one of the bots. I will update the patch
      accordingly in my next attempt.
      
      rdar://13926659
      
      llvm-svn: 182867
      4213c39e
  8. May 28, 2013
  9. May 21, 2013
  10. May 11, 2013
  11. May 08, 2013
  12. May 07, 2013
  13. May 01, 2013
  14. Apr 27, 2013
    • Eric Christopher's avatar
      Use the target triple from the target machine rather than the module · 203e12bf
      Eric Christopher authored
      to determine whether or not we're on a darwin platform for debug code
      emitting.
      
      Solves the problem of a module with no triple on the command line
      and no triple in the module using non-gdb ok features on darwin. Fix
      up the member-pointers test to check the correct things for cross
      platform (DW_FORM_flag is a good prefix).
      
      Unfortunately no testcase because I have no ideas how to test something
      without a triple and without a triple in the module yet check
      precisely on two platforms. Ideas welcome.
      
      llvm-svn: 180660
      203e12bf
  15. Apr 26, 2013
    • Adrian Prantl's avatar
      Cleanup and document MachineLocation. · d4c0dd47
      Adrian Prantl authored
      Clarify documentation and API to make the difference between register and
      register-indirect addressed locations more explicit. Put in a comment
      to point out that with the current implementation we cannot specify
      a register-indirect location with offset 0 (a breg 0 in DWARF).
      No functionality change intended.
      
      rdar://problem/13658587
      
      llvm-svn: 180641
      d4c0dd47
  16. Apr 24, 2013
  17. Apr 22, 2013
  18. Apr 19, 2013
    • Eric Christopher's avatar
      Revert "PR14606: debug info imported_module support" · 0e89ade8
      Eric Christopher authored
      This reverts commit r179836 as it seems to have caused test failures.
      
      llvm-svn: 179840
      0e89ade8
    • David Blaikie's avatar
      PR14606: debug info imported_module support · 88564f3c
      David Blaikie authored
      Adding another CU-wide list, in this case of imported_modules (since they
      should be relatively rare, it seemed better to add a list where each element
      had a "context" value, rather than add a (usually empty) list to every scope).
      This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll
      need to expand this to cover DW_TAG_imported_declaration too.
      
      llvm-svn: 179836
      88564f3c
  19. Apr 09, 2013
  20. Apr 07, 2013
  21. Apr 06, 2013
  22. Apr 05, 2013
    • Manman Ren's avatar
      Debug Info: revert 178722 for now. · bdcb4464
      Manman Ren authored
      There is a difference for FORM_ref_addr between DWARF 2 and DWARF 3+.
      Since Eric is against guarding DWARF 2 ref_addr with DarwinGDBCompat, we are
      still in discussion on how to handle this.
      
      The correct solution is to update our header to say version 4 instead of version
      2 and update tool chains as well.
      
      rdar://problem/13559431
      
      llvm-svn: 178806
      bdcb4464
  23. Apr 04, 2013
  24. Apr 03, 2013
  25. Mar 30, 2013
  26. Mar 29, 2013
  27. Mar 13, 2013
  28. Mar 12, 2013
    • Manman Ren's avatar
      Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIE · 14a029d9
      Manman Ren authored
      belongs to a different compile unit.
      
      DW_FORM_ref_addr should be used for cross compile-unit reference.
      
      When compiling a large application, we got a dwarfdump verification error where
      abstract_origin points to nowhere.
      
      This error can't be reproduced on any testing case in MultiSource.
      We may have other cases where we use DW_FORM_ref4 unconditionally.
      
      rdar://problem/13370501
      
      llvm-svn: 176882
      14a029d9
    • David Blaikie's avatar
      Remove support for versioned debug info. · dc69ebb1
      David Blaikie authored
      Versioned debug info support has been a burden to maintain & also compromised
      current debug info verification by causing test cases testing old debug info to
      remain rather than being updated to the latest. It also makes it hard to add or
      change the metadata schema by requiring various backwards-compatibility in the
      DI* hierarchy.
      
      So it's being removed in preparation for new changes to the schema to tidy up
      old/unnecessary fields and add new fields needed for new debug info (well, new
      to LLVM at least).
      
      The more surprising part of this is the changes to DI*::Verify - this became
      necessary due to the changes to AsmWriter. AsmWriter was relying on the version
      test to decide which bits of metadata were actually debug info when printing
      the comment annotations. Without the version information the tag numbers were
      too common & it would print debug info on random metadata that happened to
      start with an integer that matched a tag number. Instead this change makes the
      Verify functions more precise (just adding "number of operands" checks - not
      type checking those operands yet) & relies on that to decide which metadata is
      debug info metadata.
      
      llvm-svn: 176838
      dc69ebb1
Loading