1. Feb 25, 2017
    • 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
  2. Feb 24, 2017
    • 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
  3. Feb 23, 2017
  4. Feb 22, 2017
    • Hans Wennborg's avatar
      Merging r294954 and r295592: · 6aa5628b
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r294954 | chapuni | 2017-02-13 06:59:53 -0800 (Mon, 13 Feb 2017) | 5 lines
      
      Fix r291495 -- Normalize LLVM_CMAKE_PATH in clang standalone build.
      
      CMake handles paths with slashes. It caused cmake/install failure on msbuild.exe.
      
      Note, Other llvm-config-oriented variables have been normalized since they are stored in the cache attributed with PATH.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r295592 | chapuni | 2017-02-18 19:17:31 -0800 (Sat, 18 Feb 2017) | 1 line
      
      clang/CMakeLists.txt: Rework r294954 -- use file(TO_CMAKE_PATH).
      ------------------------------------------------------------------------
      
      llvm-svn: 295760
      6aa5628b
    • Hans Wennborg's avatar
      Merging r295610: · 2fb89496
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295610 | brad | 2017-02-19 11:33:26 -0800 (Sun, 19 Feb 2017) | 4 lines
      
      Link static PIE programs against rcrt0.o on OpenBSD
      
      Patch by Stefan Kempf.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 295752
      2fb89496
    • Hans Wennborg's avatar
      Merging r293273: · d05e1bb9
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r293273 | chandlerc | 2017-01-27 02:27:32 -0800 (Fri, 27 Jan 2017) | 19 lines
      
      [LICM] When we are recomputing the alias sets for a subloop, we cannot
      skip sub-subloops.
      
      The logic to skip subloops dated from when this code was shared with the
      cached case. Once it was factored out to only run in the case of
      recomputed subloops it became a dangerous bug. If a subsubloop contained
      an interfering instruction it would be silently skipped from the alias
      sets for LICM.
      
      With the old pass manager this was extremely hard to trigger as it would
      require failing to visit these subloops with the LICM pass but then
      visiting the outer loop somehow. I've not yet contrived any test case
      that actually manages to trigger this.
      
      But with the new pass manager we don't do the cross-loop caching hack
      that the old PM does and so we recompute alias set information from
      first principles. While this seems much cleaner and simpler it exposed
      this bug and would subtly miscompile code due to failing to correctly
      model the aliasing constraints of deeply nested loops.
      ------------------------------------------------------------------------
      
      llvm-svn: 295748
      d05e1bb9
    • Hans Wennborg's avatar
      Merging r295486 and r295490: · 78c8b20d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295486 | adrian | 2017-02-17 11:42:32 -0800 (Fri, 17 Feb 2017) | 6 lines
      
      Debug Info: Sort frame index expressions before emitting them.
      This fixes PR31381, which caused an assertion and/or invalid debug info.
      
      This affects debug variables that have multiple fragments in the MMI
      side (i.e.: in the stack frame) table.
      rdar://problem/30571676
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r295490 | adrian | 2017-02-17 12:02:26 -0800 (Fri, 17 Feb 2017) | 1 line
      
      Fix windows bots by locking down the target triple on this testcase.
      ------------------------------------------------------------------------
      
      llvm-svn: 295747
      78c8b20d
    • Hans Wennborg's avatar
      Merging r295512: · e1a150a8
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295512 | matze | 2017-02-17 15:15:03 -0800 (Fri, 17 Feb 2017) | 8 lines
      
      AArch64LoadStoreOptimizer: Correctly clear kill flags
      
      When promoting the Load of a Store-Load pair to a COPY all kill flags
      between the store and the load need to be cleared.
      
      rdar://30402435
      
      Differential Revision: https://reviews.llvm.org/D30110
      ------------------------------------------------------------------------
      
      llvm-svn: 295744
      e1a150a8
    • Hans Wennborg's avatar
      ReleaseNotes: GVNHoist; by Sepastian Pop · fed41450
      Hans Wennborg authored
      llvm-svn: 295743
      fed41450
    • Hans Wennborg's avatar
      ReleaseNotes: static analyzer; by Anna Zaks · 7ee1a6c0
      Hans Wennborg authored
      llvm-svn: 295742
      7ee1a6c0
  5. Feb 17, 2017
    • Hans Wennborg's avatar
      Merging r293124: · 55dd7c07
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r293124 | mkuper | 2017-01-25 17:04:11 -0800 (Wed, 25 Jan 2017) | 9 lines
      
      [LoopUnroll] Properly update loopinfo for runtime unrolling by 2
      
      Even when we don't create a remainder loop (that is, when we unroll by 2), we
      may duplicate nested loops into the remainder. This is complicated by the fact
      the remainder may itself be either inserted into an outer loop, or at the top
      level. In the latter case, we may need to create new top-level loops.
      
      Differential Revision: https://reviews.llvm.org/D29156
      
      ------------------------------------------------------------------------
      
      llvm-svn: 295380
      55dd7c07
    • Hans Wennborg's avatar
      Merging r295230: · 92842cac
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295230 | arnolds | 2017-02-15 12:43:43 -0800 (Wed, 15 Feb 2017) | 11 lines
      
      AddressSanitizer: don't track swifterror memory addresses
      
      They are register promoted by ISel and so it makes no sense to treat them as
      memory.
      
      Inserting calls to the thread sanitizer would also generate invalid IR.
      
      You would hit:
      
      "swifterror value can only be loaded and stored from, or as a swifterror
      argument!"
      ------------------------------------------------------------------------
      
      llvm-svn: 295377
      92842cac
    • Hans Wennborg's avatar
      Merging r295215: · 8585b8b2
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295215 | arnolds | 2017-02-15 10:57:06 -0800 (Wed, 15 Feb 2017) | 11 lines
      
      ThreadSanitizer: don't track swifterror memory addresses
      
      They are register promoted by ISel and so it makes no sense to treat them as
      memory.
      
      Inserting calls to the thread sanitizer would also generate invalid IR.
      
      You would hit:
      
      "swifterror value can only be loaded and stored from, or as a swifterror
      argument!"
      ------------------------------------------------------------------------
      
      llvm-svn: 295376
      8585b8b2
    • Hans Wennborg's avatar
      Merging r295224: · f22ee645
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295224 | rsmith | 2017-02-15 11:57:10 -0800 (Wed, 15 Feb 2017) | 2 lines
      
      PR24440: Do not silently discard a fold-expression appearing as the operand of a cast-expression.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 295375
      f22ee645
    • Hans Wennborg's avatar
      Merging r295213: · 58fb9a0f
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295213 | mkuper | 2017-02-15 10:37:26 -0800 (Wed, 15 Feb 2017) | 10 lines
      
      [DAG] Don't try to create an INSERT_SUBVECTOR with an illegal source
      
      We currently can't legalize those, but we should really not be creating
      them in the first place, since legalization would probably look similar to the
      way we legalize CONCAT_VECTORS - basically replace the INSERT with a BUILD.
      
      This fixes PR311956.
      
      Differential Revision: https://reviews.llvm.org/D29961
      
      ------------------------------------------------------------------------
      
      llvm-svn: 295374
      58fb9a0f
    • Kai Nacke's avatar
      Add external project LDC to release notes. · 4ef9a35c
      Kai Nacke authored
      LDC, the LLVM-based D compiler, is already ready for LLVM 4.0.
      
      llvm-svn: 295367
      4ef9a35c
    • Hans Wennborg's avatar
      Merging r292271: · 23de4355
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r292271 | aaron | 2017-01-17 21:48:31 +0000 (Tue, 17 Jan 2017) | 2 lines
      
      Silence some Sphinx diagnostics in an attempt to get the documentation builder back to green (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/1895).
      ------------------------------------------------------------------------
      
      llvm-svn: 295344
      23de4355
    • Hans Wennborg's avatar
      Merging r295313: · e85e175a
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r295313 | stulova | 2017-02-16 04:49:29 -0800 (Thu, 16 Feb 2017) | 9 lines
      
      [OpenCL][Doc] Added OpenCL vendor extension description to user manual doc
      
      Added description of a new feature that allows to specify
      vendor extension in flexible way using compiler pragma instead
      of modifying source code directly (committed in clang@r289979).
      
      Review: D29829
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 295340
      e85e175a
  6. Feb 16, 2017
    • Anastasia Stulova's avatar
      [OpenCL][Doc] Relase 4.0 notes for OpenCL · 6ed89d27
      Anastasia Stulova authored
      Review: D29830
      llvm-svn: 295315
      6ed89d27
    • Hans Wennborg's avatar
      Merging r294129: · d3a5999f
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r294129 | gberry | 2017-02-05 10:28:14 -0800 (Sun, 05 Feb 2017) | 16 lines
      
      [SelectionDAG] In InstrEmitter, handle EXTRACT_SUBREG of a physical register.
      
      Summary:
      Without this change, the getVR() call would hit an assert since it was
      being passed a physical register.
      
      Update the AArch64/ldst-opt.ll test with a case that triggers this
      behavior by adding a run with strict-align, which causes an unaligned
      STR XZR instruction to be split into byte stores, creating an
      EXTRACT_SUBREG of XZR that triggers the original problem.
      
      Reviewers: bogner, qcolombet, MatzeB, atrick
      
      Subscribers: aemerson, mcrosier, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29495
      ------------------------------------------------------------------------
      
      llvm-svn: 295250
      d3a5999f