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

  1. 07 Mar, 2017 4 commits
    • Hans Wennborg's avatar
      ReleaseNotes: fix indent · ed7ec907
      Hans Wennborg authored
      llvm-svn: 297204
      ed7ec907
    • Hans Wennborg's avatar
      ReleaseNotes: fix the VS version; follow-up to r297097 · 62364efb
      Hans Wennborg authored
      llvm-svn: 297203
      62364efb
    • Hans Wennborg's avatar
      Merging r297075: · ab7cbc9a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r297075 | hans | 2017-03-06 13:10:40 -0800 (Mon, 06 Mar 2017) | 1 line
      
      Disable gvn-hoist (PR32153)
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 297165
      ab7cbc9a
    • Hans Wennborg's avatar
      Merging r296992: · d251e94e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296992 | sanjoy | 2017-03-05 15:49:17 -0800 (Sun, 05 Mar 2017) | 7 lines
      
      [SCEV] Decrease the recursion threshold for CompareValueComplexity
      
      Fixes PR32142.
      
      r287232 accidentally increased the recursion threshold for
      CompareValueComplexity from 2 to 32.  This change reverses that change
      by introducing a separate flag for CompareValueComplexity's threshold.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 297164
      d251e94e
  2. 06 Mar, 2017 2 commits
  3. 02 Mar, 2017 3 commits
    • Eric Fiselier's avatar
      Update ABI lists and changelog for final 4.0 release · d07c41fa
      Eric Fiselier authored
      llvm-svn: 296804
      d07c41fa
    • Hans Wennborg's avatar
      Merging r296656: · 4adb2ddb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296656 | bruno | 2017-03-01 11:18:42 -0800 (Wed, 01 Mar 2017) | 34 lines
      
      [PCH] Avoid VarDecl emission attempt if no owning module avaiable
      
      This is a stopgap fix for PR31863, a regression introduced in r276159.
      
      Consider this snippet:
      
      struct FVector;
      struct FVector {};
      struct FBox {
        FVector Min;
        FBox(int);
      };
      namespace {
      FBox InvalidBoundingBox(0);
      }
      
      While parsing the DECL_VAR for 'struct FBox', clang recursively read all the
      dep decls until it finds the DECL_CXX_RECORD forward declaration for 'struct
      FVector'. Then, it resumes all the way up back to DECL_VAR handling in
      `ReadDeclRecord`, where it checks if `isConsumerInterestedIn` for the decl.
      
      One of the condition for `isConsumerInterestedIn` to return false is if the
      VarDecl is imported from a module `D->getImportedOwningModule()`, because it
      will get emitted when we import the relevant module. However, before checking
      if it comes from a module, clang checks if `Ctx.DeclMustBeEmitted(D)`, which
      triggers the emission of 'struct FBox'. Since one of its fields is still
      incomplete, it crashes.
      
      Instead, check if `D->getImportedOwningModule()` is true before calling
      `Ctx.DeclMustBeEmitted(D)`.
      
      Differential Revision: https://reviews.llvm.org/D29753
      
      rdar://problem/30173654
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296762
      4adb2ddb
    • Hans Wennborg's avatar
      Merging r296642: · f51dd7e3
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296642 | hans | 2017-03-01 09:15:08 -0800 (Wed, 01 Mar 2017) | 5 lines
      
      [GVNHoist] Don't hoist unsafe scalars at -Oz (PR31729)
      
      Based on Aditya Kumar's patch:
      
      Differential Revision: https://reviews.llvm.org/D29092
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296761
      f51dd7e3
  4. 01 Mar, 2017 2 commits
  5. 28 Feb, 2017 1 commit
  6. 27 Feb, 2017 4 commits
    • Hans Wennborg's avatar
      Merging r296093 and r296260: · 68b9f14f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296093 | ctopper | 2017-02-23 22:38:24 -0800 (Thu, 23 Feb 2017) | 1 line
      
      [ExecutionDepsFix] Use range-based for loop. NFC
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r296260 | ctopper | 2017-02-25 10:12:25 -0800 (Sat, 25 Feb 2017) | 18 lines
      
      [ExecutionDepsFix] Don't make copies of LiveReg objects when collecting operands for soft instructions
      
      Summary:
      While collecting operands we make copies of the LiveReg objects which are stored in the LiveRegs array. If the instruction uses the same register multiple times we end up with multiple copies. Later we iterate through the collected list of LiveReg objects and merge DomainValues. In the process of doing this the merge function can change the contents of the original LiveReg object in the LiveRegs array, but not the copies that have been made. So when we get to the second usage of the register we end up seeing a stale copy of the LiveReg object.
      
      To fix this I've stopped copying and now just store a pointer to the original LiveReg object. Another option might be to avoid adding the same register to the Regs array twice, but this approach seemed simpler.
      
      The included test case exposes this bug due to an AVX-512 masked OR instruction using the same register for the passthru operand and one of the inputs to the OR operation.
      
      Fixes PR30284.
      
      Reviewers: RKSimon, stoklund, MatzeB, spatel, myatsina
      
      Reviewed By: RKSimon
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D30242
      ------------------------------------------------------------------------
      
      llvm-svn: 296380
      68b9f14f
    • Hans Wennborg's avatar
      Merging r296358 and r296359: · a20b011d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296358 | aadg | 2017-02-27 09:33:20 -0800 (Mon, 27 Feb 2017) | 8 lines
      
      Add libcxxabi's LICENSE.TXT to libunwind.
      
      When libunwind was spinned off libcxxabi, most file were copied from
      libcxxabi to libunwind.  However, libc++abi's toplevel LICENSE.TXT was
      forgotten in the copying. It's considered a good practice to have the
      license file at the root of the project, and making linunwind a separate
      project was not supposed to change its licensing. Besides, several
      header files refer to the LICENSE.TXT, so copy the one from libc++abi.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r296359 | aadg | 2017-02-27 09:47:58 -0800 (Mon, 27 Feb 2017) | 1 line
      
      Fix the project name in the license file.
      ------------------------------------------------------------------------
      
      llvm-svn: 296364
      a20b011d
    • Hans Wennborg's avatar
      Merging r295116: · 5a1a5cc8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295116 | dim | 2017-02-14 14:49:49 -0800 (Tue, 14 Feb 2017) | 18 lines
      
      Disable wrapping llvm-xray YAML output
      
      Summary:
      The YAML output produced by llvm-xray is supposed to be wrapped at the
      arbitrary default of 70 columns set by `yaml:Output`.  Unfortunately,
      the wrapping is rather unpredictable, and can easily go past the set
      number of columns, depending on the execution environment.
      
      To make the YAML output environment-independent, disable wrapping
      instead.
      
      Reviewers: dberris
      
      Reviewed By: dberris
      
      Subscribers: fhahn, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29962
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296357
      5a1a5cc8
    • Simon Dardis's avatar
      [ReleaseNotes] Add MIPS release notes. · 3fde7cb0
      Simon Dardis authored
      llvm-svn: 296340
      3fde7cb0
  7. 24 Feb, 2017 20 commits
    • Hans Wennborg's avatar
      RelaseNotes: tweaks · 71de8646
      Hans Wennborg authored
      llvm-svn: 296204
      71de8646
    • Hans Wennborg's avatar
      ReleaseNotes: drop in-progress warning · cda0841f
      Hans Wennborg authored
      llvm-svn: 296203
      cda0841f
    • Hans Wennborg's avatar
      RelaseNotes: tweaks · 3b6421a2
      Hans Wennborg authored
      llvm-svn: 296202
      3b6421a2
    • Hans Wennborg's avatar
      ReleaseNotes: drop empty sections · 416c5877
      Hans Wennborg authored
      llvm-svn: 296200
      416c5877
    • Hans Wennborg's avatar
      ReleaseNotes: drop in-progress warning · 061f4698
      Hans Wennborg authored
      llvm-svn: 296199
      061f4698
    • Hans Wennborg's avatar
      RelaseNotes: tweaks · 2a032883
      Hans Wennborg authored
      llvm-svn: 296197
      2a032883
    • Hans Wennborg's avatar
      ReleaseNotes: drop dead sections · 1df636a4
      Hans Wennborg authored
      llvm-svn: 296195
      1df636a4
    • Hans Wennborg's avatar
      ReleaseNotes: tweaks · 6a9cef28
      Hans Wennborg authored
      llvm-svn: 296194
      6a9cef28
    • Hans Wennborg's avatar
      ReleaseNotes: drop in-progress warning · 7e19e2d6
      Hans Wennborg authored
      llvm-svn: 296192
      7e19e2d6
    • Hans Wennborg's avatar
      ReleaseNotes: typos and tweaks · 6d574b62
      Hans Wennborg authored
      llvm-svn: 296191
      6d574b62
    • Hans Wennborg's avatar
      ReleaseNotes: drop in-progress warning · c77d26c9
      Hans Wennborg authored
      llvm-svn: 296189
      c77d26c9
    • Hans Wennborg's avatar
      Revert r288115 for PR31847. · b283ed6b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r288115 | abataev | 2016-11-29 09:21:14 +0100 (Tue, 29 Nov 2016) | 8 lines
      
      [SLPVectorizer] Improved support of partial tree vectorization.
      
      Currently SLP vectorizer tries to vectorize a binary operation and dies
      immediately after unsuccessful the first unsuccessfull attempt. Patch
      tries to improve the situation, trying to vectorize all binary
      operations of all children nodes in the binop tree.
      
      Differential Revision: https://reviews.llvm.org/D25517
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296185
      b283ed6b
    • Hans Wennborg's avatar
      Merging r295990: · b0465c9c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295990 | jvesely | 2017-02-23 08:12:21 -0800 (Thu, 23 Feb 2017) | 5 lines
      
      AMDGPU/SI: Fix trunc i16 pattern
      
      Hit on ASICs that support 16bit instructions.
      
      Differential Revision: https://reviews.llvm.org/D30281
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296158
      b0465c9c
    • Hans Wennborg's avatar
      Merging r296003: · 1f7b90c8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296003 | mcrosier | 2017-02-23 10:49:03 -0800 (Thu, 23 Feb 2017) | 32 lines
      
      [Reassociate] Add negated value of negative constant to the Duplicates list.
      
      In OptimizeAdd, we scan the operand list to see if there are any common factors
      between operands that can be factored out to reduce the number of multiplies
      (e.g., 'A*A+A*B*C+D' -> 'A*(A+B*C)+D'). For each operand of the operand list, we
      only consider unique factors (which is tracked by the Duplicate set). Now if we
      find a factor that is a negative constant, we add the negated value as a factor
      as well, because we can percolate the negate out. However, we mistakenly don't
      add this negated constant to the Duplicates set.
      
      Consider the expression A*2*-2 + B. Obviously, nothing to factor.
      
      For the added value A*2*-2 we over count 2 as a factor without this change,
      which causes the assert reported in PR30256.  The problem is that this code is
      assuming that all the multiply operands of the add are already reassociated.
      This change avoids the issue by making OptimizeAdd tolerate multiplies which
      haven't been completely optimized; this sort of works, but we're doing wasted
      work: we'll end up revisiting the add later anyway.
      
      Another possible approach would be to enforce RPO iteration order more strongly.
      If we have RedoInsts, we process them immediately in RPO order, rather than
      waiting until we've finished processing the whole function. Intuitively, it
      seems like the natural approach: reassociation works on expression trees, so
      the optimization only works in one direction. That said, I'm not sure how
      practical that is given the current Reassociate; the "optimal" form for an
      expression depends on its use list (see all the uses of "user_back()"), so
      Reassociate is really an iterative optimization of sorts, so any changes here
      would probably get messy.
      
      PR30256
      
      Differential Revision: https://reviews.llvm.org/D30228
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296156
      1f7b90c8
    • Hans Wennborg's avatar
      Merging r293604: · e6df079e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r293604 | sammccall | 2017-01-30 21:23:20 -0800 (Mon, 30 Jan 2017) | 12 lines
      
      In VirtualCallChecker, handle indirect calls
      
      Summary:
      In VirtualCallChecker, handle indirect calls.
      
      getDirectCallee() can be nullptr, and dyn_cast(nullptr) is UB
      
      Reviewers: bkramer
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D29303
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296154
      e6df079e
    • Hans Wennborg's avatar
      Merging r296063: · e6ba2e0c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296063 | hans | 2017-02-23 17:16:34 -0800 (Thu, 23 Feb 2017) | 4 lines
      
      Revert r291477 "[Frontend] Correct values of ATOMIC_*_LOCK_FREE to match builtin"
      
      It caused PR31864. There is a patch in progress to fix that, but let's
      revert in the meantime.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296152
      e6ba2e0c
    • Hans Wennborg's avatar
      Merging r295474: · ad64c684
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295474 | hahnfeld | 2017-02-17 10:32:58 -0800 (Fri, 17 Feb 2017) | 6 lines
      
      [OpenMP] Fix cancellation point in task with no cancel
      
      With tasks, the cancel may happen in another task. This has a different
      region info which means that we can't find it here.
      
      Differential Revision: https://reviews.llvm.org/D30091
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296151
      ad64c684
    • Hans Wennborg's avatar
      Revert r296139; it accidentally merged multiple things · 8e1284a2
      Hans Wennborg authored
      llvm-svn: 296150
      8e1284a2
    • Hans Wennborg's avatar
      Merging r296030: · 4cd2bf3c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r296030 | hans | 2017-02-23 14:29:00 -0800 (Thu, 23 Feb 2017) | 7 lines
      
      Revert r282872 "CVP. Turn marking adds as no wrap on by default"
      
      While not CVP's fault, this caused miscompiles (PR31181). Reverting
      until those are resolved.
      
      (This also reverts the follow-ups r288154 and r288161 which removed the
      flag.)
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296148
      4cd2bf3c
    • Hans Wennborg's avatar
      Merging r295474: · 7f6e1fc6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295474 | hahnfeld | 2017-02-17 10:32:58 -0800 (Fri, 17 Feb 2017) | 6 lines
      
      [OpenMP] Fix cancellation point in task with no cancel
      
      With tasks, the cancel may happen in another task. This has a different
      region info which means that we can't find it here.
      
      Differential Revision: https://reviews.llvm.org/D30091
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296139
      7f6e1fc6
  8. 23 Feb, 2017 4 commits
    • Hans Wennborg's avatar
      Merging r295762: · 94fdaca6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295762 | eugenis | 2017-02-21 12:17:34 -0800 (Tue, 21 Feb 2017) | 3 lines
      
      Fix PR31896.
      
      Address of an alias of a global with offset is incorrectly lowered as an address of the global (i.e. ignoring offset).
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296002
      94fdaca6
    • Hans Wennborg's avatar
      Merging r295843: · 2fc968b7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295843 | jvesely | 2017-02-22 07:01:42 -0800 (Wed, 22 Feb 2017) | 3 lines
      
      [OpenCL] r600 needs OpenCL kernel calling convention
      
      Differential Revision: https://reviews.llvm.org/D30236
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296001
      2fc968b7
    • Hans Wennborg's avatar
      Merging r295473: · d63cfd65
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r295473 | hahnfeld | 2017-02-17 10:32:51 -0800 (Fri, 17 Feb 2017) | 13 lines
      
      [OpenMP] Remove barriers at cancel and cancellation point
      
      This resolves a deadlock with the cancel directive when there is no explicit
      cancellation point. In that case, the implicit barrier acts as cancellation
      point. After removing the barrier after cancel, the now unmatched barrier for
      the explicit cancellation point has to go as well.
      
      This has probably worked before rL255992: With the calls for the explicit
      barrier, it was sure that all threads passed a barrier before exiting.
      
      Reported by Simon Convent and Joachim Protze!
      
      Differential Revision: https://reviews.llvm.org/D30088
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 296000
      d63cfd65
    • Hans Wennborg's avatar
      Backport r293433, ARM: support `-mlong-calls` with AEABI TLS on ELF · 1a5584f8
      Hans Wennborg authored
      Support lowering AEABI TLS access (__aeabi_read_tp) with long calls.
      This requires adjusting the call sequence to use an indirect call to get
      full addressability.
      
      Resolves PR31769!
      
      By Saleem Abdulrasool!
      
      llvm-svn: 295910
      1a5584f8