and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 15 Jan, 2015 6 commits
    • Duncan P. N. Exon Smith's avatar
      Merging r226058: · 06265a01
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226058 | dexonsmith | 2015-01-14 15:11:51 -0800 (Wed, 14 Jan 2015) | 1 line
      
      IR: Fix comment spelling, NFC
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226095
      06265a01
    • Duncan P. N. Exon Smith's avatar
      Merging r226048: · 9282c9fd
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226048 | dexonsmith | 2015-01-14 14:27:36 -0800 (Wed, 14 Jan 2015) | 17 lines
      
      IR: Move MDLocation into place
      
      This commit moves `MDLocation`, finishing off PR21433.  There's an
      accompanying clang commit for frontend testcases.  I'll attach the
      testcase upgrade script I used to PR21433 to help out-of-tree
      frontends/backends.
      
      This changes the schema for `DebugLoc` and `DILocation` from:
      
          !{i32 3, i32 7, !7, !8}
      
      to:
      
          !MDLocation(line: 3, column: 7, scope: !7, inlinedAt: !8)
      
      Note that empty fields (line/column: 0 and inlinedAt: null) don't get
      printed by the assembly writer.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226094
      9282c9fd
    • Duncan P. N. Exon Smith's avatar
      Merging r226049: · aa9a09be
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226049 | dexonsmith | 2015-01-14 14:28:03 -0800 (Wed, 14 Jan 2015) | 3 lines
      
      IR: Move MDLocation into place (clang testcases)
      
      Update testcases to match LLVM change in r226048.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226093
      aa9a09be
    • Duncan P. N. Exon Smith's avatar
      Merging r226046: · 606bf753
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226046 | dexonsmith | 2015-01-14 14:14:26 -0800 (Wed, 14 Jan 2015) | 3 lines
      
      IR: Always print MDLocation line
      
      Print `MDLocation`'s `line` field even when it's 0.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226092
      606bf753
    • Duncan P. N. Exon Smith's avatar
      Merging r226044: · c65f9346
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226044 | dexonsmith | 2015-01-14 13:58:17 -0800 (Wed, 14 Jan 2015) | 15 lines
      
      IR: Drop metadata references more aggressively during teardown
      
      Sometimes teardown happens before the debug info graph is complete
      (e.g., when clang throws an error).  In that case, `MDNode`s will still
      have RAUW, so deleting constants that the `MDNode`s point at will be
      relatively expensive -- it'll cause re-uniquing all up the chain (what
      I've been referring to as "teardown madness").
      
      So, drop references *before* deleting constants.  We need to drop a few
      more references now: the metadata side of the metadata/value bridges
      needs to be dropped off the cliff along with the rest of it (previously,
      the bridges were cleaned before we did anything with the `MDNode`s).
      
      There's no real functionality change here -- state before and after
      `LLVMContextImpl::~LLVMContextImpl()` is unchanged -- so no testcase.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226091
      c65f9346
    • Duncan P. N. Exon Smith's avatar
      Merging r226029: · aa90c32d
      Duncan P. N. Exon Smith authored
      ```---------------------------------------------------------------------
      r226029 | dexonsmith | 2015-01-14 11:56:10 -0800 (Wed, 14 Jan 2015) | 7 lines
      
      IR: Fix a use-after-free in RAUW
      
      Happened pretty commonly during `LLVMContext` teardown when `clang -g`
      hit an error.  This fixes the use-after-free.  Next I'll clean up
      teardown so that it's not RAUW'ing when metadata-tracked values are
      deleted (only really causes a problem if the graph is mid-construction
      when teardown starts, but it's still unnecessary work).
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 226090
      aa90c32d
  2. 14 Jan, 2015 34 commits