1. Aug 05, 2016
    • Nicolai Haehnle's avatar
      Add release note for AMDGPU target. · a2296f01
      Nicolai Haehnle authored
      llvm-svn: 277803
      a2296f01
    • Hans Wennborg's avatar
      Merging r277691, r277693, and r277773: · 48466efc
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277691 | majnemer | 2016-08-03 21:24:02 -0700 (Wed, 03 Aug 2016) | 4 lines
      
      Reinstate "[CloneFunction] Don't remove side effecting calls"
      
      This reinstates r277611 + r277614 and reverts r277642.  A cast_or_null
      should have been a dyn_cast_or_null.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277693 | majnemer | 2016-08-03 21:47:18 -0700 (Wed, 03 Aug 2016) | 1 line
      
      Forgot the dyn_cast_or_null intended for r277691.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277773 | majnemer | 2016-08-04 14:28:59 -0700 (Thu, 04 Aug 2016) | 6 lines
      
      [CloneFunction] Add a testcase for r277691/r277693
      
      PR28848 had a very nice reduction of the underlying cause of the bug.
      Our ValueMap had, in an entry for an Instruction, a ConstantInt.
      
      This is not at all unexpected but should be handled properly.
      ------------------------------------------------------------------------
      
      llvm-svn: 277781
      48466efc
    • Devin Coughlin's avatar
      [docs] Add 3.9 release notes for the static analyzer. · 8a5dbfe8
      Devin Coughlin authored
      llvm-svn: 277772
      8a5dbfe8
    • Nico Weber's avatar
      Add a note about clang-cl pch support to the 3.9 release notes. · ff00bfa1
      Nico Weber authored
      llvm-svn: 277751
      ff00bfa1
    • Nico Weber's avatar
      grammar fix · 94f84eb3
      Nico Weber authored
      llvm-svn: 277750
      94f84eb3
    • George Burgess IV's avatar
      Add release note for MemorySSA. · cf7397c3
      George Burgess IV authored
      llvm-svn: 277739
      cf7397c3
  2. Aug 04, 2016
    • Hans Wennborg's avatar
      Merging r277625: · 07101cec
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277625 | dexonsmith | 2016-08-03 11:19:43 -0700 (Wed, 03 Aug 2016) | 42 lines
      
      IR: Drop uniquing when an MDNode Value operand is deleted
      
      This is a fix for PR28697.
      
      An MDNode can indirectly refer to a GlobalValue, through a
      ConstantAsMetadata.  When the GlobalValue is deleted, the MDNode operand
      is reset to `nullptr`.  If the node is uniqued, this can lead to a
      hard-to-detect cache invalidation in a Metadata map that's shared across
      an LLVMContext.
      
      Consider:
      
       1. A map from Metadata* to `T` called RemappedMDs.
       2. A node that references a global variable, `!{i1* @GV}`.
       3. Insert `!{i1* @GV} -> SomeT` in the map.
       4. Delete `@GV`, leaving behind `!{null} -> SomeT`.
      
      Looking up the generic and uninteresting `!{null}` gives you `SomeT`,
      which is likely related to `@GV`.  Worse, `SomeT`'s lifetime may be tied
      to the deleted `@GV`.
      
      This occurs in practice in the shared ValueMap used since r266579 in the
      IRMover.  Other code that handles more than one Module (with different
      lifetimes) in the same LLVMContext could hit it too.
      
      The fix here is a partial revert of r225223: in the rare case that an
      MDNode operand is a ConstantAsMetadata (i.e., wrapping a node from the
      Value hierarchy), drop uniquing if it gets replaced with `nullptr`.
      This changes step #4 above to leave behind `distinct !{null} -> SomeT`,
      which can't be confused with the generic `!{null}`.
      
      In theory, this can cause some churn in the LLVMContext's MDNode
      uniquing map when Values are being deleted.  However:
      
        - The number of GlobalValues referenced from uniqued MDNodes is
          expected to be quite small.  E.g., the debug info metadata schema
          only references GlobalValues from distinct nodes.
      
        - Other Constants have the lifetime of the LLVMContext, whose teardown
          is careful to drop references before deleting the constants.
      
      As a result, I don't expect a compile time regression from this change.
      ------------------------------------------------------------------------
      
      llvm-svn: 277639
      07101cec
    • Teresa Johnson's avatar
      Add ThinLTO release note. · 2546545e
      Teresa Johnson authored
      llvm-svn: 277628
      2546545e
    • Hans Wennborg's avatar
      Merging r277504: · 2f58a723
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277504 | nha | 2016-08-02 12:31:14 -0700 (Tue, 02 Aug 2016) | 20 lines
      
      AMDGPU: Stay in WQM for non-intrinsic stores
      
      Summary:
      Two types of stores are possible in pixel shaders: stores to memory that are
      explicitly requested at the API level, and stores that are an implementation
      detail of register spilling or lowering of arrays.
      
      For the first kind of store, we must ensure that helper pixels have no effect
      and hence WQM must be disabled. The second kind of store must always be
      executed, because the written value may be loaded again in a way that is
      relevant for helper pixels as well -- and there are no externally visible
      effects anyway.
      
      This is a candidate for the 3.9 release branch.
      
      Reviewers: arsenm, tstellarAMD, mareko
      
      Subscribers: arsenm, kzhuravl, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22675
      ------------------------------------------------------------------------
      
      llvm-svn: 277620
      2f58a723
    • Hans Wennborg's avatar
      Merging r277500: · 3b3179a9
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277500 | nha | 2016-08-02 12:17:37 -0700 (Tue, 02 Aug 2016) | 17 lines
      
      AMDGPU: Track physical registers in SIWholeQuadMode
      
      Summary:
      There are cases where uniform branch conditions are computed in VGPRs, and
      we didn't correctly mark those as WQM.
      
      The stray change in basic-branch.ll is because invoking the LiveIntervals
      analysis leads to the detection of a dead register that would otherwise not
      be seen at -O0.
      
      This is a candidate for the 3.9 branch, as it fixes a possible hang.
      
      Reviewers: arsenm, tstellarAMD, mareko
      
      Subscribers: arsenm, llvm-commits, kzhuravl
      
      Differential Revision: https://reviews.llvm.org/D22673
      ------------------------------------------------------------------------
      
      llvm-svn: 277619
      3b3179a9
    • Chris Bieneman's avatar
      [docs] Release Notes: autoconf has been removed · abc0f338
      Chris Bieneman authored
      Fleshing out the note about the autoconf build system being removed and pointing to CMake documentation.
      
      llvm-svn: 277617
      abc0f338
    • Renato Golin's avatar
      [docs] release notes: self-host clang+lld on aarch64, stops · 382e3873
      Renato Golin authored
      llvm-svn: 277606
      382e3873
  3. Aug 03, 2016
    • Renato Golin's avatar
      [code] Fix release notes typo · eba143a8
      Renato Golin authored
      llvm-svn: 277593
      eba143a8
    • Renato Golin's avatar
      [docs] Release notes 3.9.0: Adding ARM target changes · 299cf98d
      Renato Golin authored
      llvm-svn: 277591
      299cf98d
    • Diana Picus's avatar
      Add a few things to the AArch64 release notes · db31d91f
      Diana Picus authored
      llvm-svn: 277590
      db31d91f
    • Benjamin Kramer's avatar
      Expand the clang-include-fixer relnotes a bit. · 7d2d8fae
      Benjamin Kramer authored
      llvm-svn: 277588
      7d2d8fae
    • Renato Golin's avatar
      [docs] Release Notes 3.9.0: GCC ABI Tag · 55dcf076
      Renato Golin authored
      Adding a short explanation of the GCC ABI Tag discussion and issues, with
      links and considerations.
      
      llvm-svn: 277587
      55dcf076
    • Hans Wennborg's avatar
      Merging r277095: · 3f72426b
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277095 | epilk | 2016-07-28 17:55:40 -0700 (Thu, 28 Jul 2016) | 5 lines
      
      [Parser] Fix bug where delayed typo in conditional expression was corrected twice
      
      Patch by David Tarditi!
      
      Differential revision: https://reviews.llvm.org/D22930
      ------------------------------------------------------------------------
      
      llvm-svn: 277525
      3f72426b
    • Hans Wennborg's avatar
      Merging r277371: · abaeaf8d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277371 | mkuper | 2016-08-01 12:39:49 -0700 (Mon, 01 Aug 2016) | 9 lines
      
      [DAGCombine] Make sext(setcc) combine respect getBooleanContents
      
      We used to combine "sext(setcc x, y, cc) -> (select (setcc x, y, cc), -1, 0)"
      Instead, we should combine to (select (setcc x, y, cc), T, 0) where the value
      of T is 1 or -1, depending on the type of the setcc, and getBooleanContents()
      for the type if it is not i1.
      
      This fixes PR28504.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 277509
      abaeaf8d
    • Hans Wennborg's avatar
      Merging r276648: · 446b0b09
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276648 | delena | 2016-07-25 09:51:00 -0700 (Mon, 25 Jul 2016) | 6 lines
      
      AVX-512: Fixed [US]INT_TO_FP selection for i1 vectors.
      It failed with assertion before this patch.
      
      Differential Revision: https://reviews.llvm.org/D22735
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 277508
      446b0b09
  4. Aug 02, 2016
    • Diana Picus's avatar
      Merging r277457 · 7db37f42
      Diana Picus authored
      [clang-cl] Fix PCH tests to use x86_64 as target
      
      These tests require x86-registered-target, but they don't force the target as
      x86 on the command line, which means they will be run and they might fail when
      building the x86 backend on another platform (such as AArch64).
      
      Fixes https://llvm.org/bugs/show_bug.cgi?id=28797
      
      llvm-svn: 277462
      7db37f42
    • Renato Golin's avatar
      Merging r276701 and r277439 · ba9e9037
      Renato Golin authored
      The saturation instructions appeared in v6T2 / DSP extensions, but they
      were being accepted / generated on any, with the new introduction of the
      saturation detection in the back-end. This commit restricts the usage to
      v6T2 / DSP-enable only cores.
      
      Fixes PR28607.
      
      llvm-svn: 277440
      ba9e9037
    • Dimitry Andric's avatar
      Merging r277307: · d1012629
      Dimitry Andric authored
      ------------------------------------------------------------------------
      r277307 | dim | 2016-07-31 22:23:23 +0200 (Sun, 31 Jul 2016) | 23 lines
      
      Add more gcc compatibility names to clang's cpuid.h
      
      Summary:
      Some cpuid bit defines are named slightly different from how gcc's
      cpuid.h calls them.
      
      Define a few more compatibility names to appease software built for gcc:
      
      * `bit_PCLMUL`      alias of `bit_PCLMULQDQ`
      * `bit_SSE4_1`      alias of `bit_SSE41`
      * `bit_SSE4_2`      alias of `bit_SSE42`
      * `bit_AES`         alias of `bit_AESNI`
      * `bit_CMPXCHG8B`   alias of `bit_CX8`
      
      While here, add the misssing 29th bit, `bit_F16C` (which is how gcc
      calls this bit).
      
      Reviewers: joerg, rsmith
      
      Subscribers: bruno, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D22010
      
      ------------------------------------------------------------------------
      
      llvm-svn: 277425
      d1012629
    • Dimitry Andric's avatar
      Merging r277300: · b53a8594
      Dimitry Andric authored
      ------------------------------------------------------------------------
      r277300 | dim | 2016-07-31 22:16:59 +0200 (Sun, 31 Jul 2016) | 5 lines
      
      Fix ASan alloca_constant_size.cc test on FreeBSD.
      
      On FreeBSD <alloca.h> does not exist: alloca(3) is defined in <stdlib.h>
      instead.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 277424
      b53a8594
    • Dimitry Andric's avatar
      Merging r277297: · 458d2d9d
      Dimitry Andric authored
      ------------------------------------------------------------------------
      r277297 | dim | 2016-07-31 21:27:46 +0200 (Sun, 31 Jul 2016) | 21 lines
      
      XFAIL one sanitizer symbolizer test for FreeBSD
      
      Summary:
      Due to a QoI issuse in FreeBSD's libcxxrt-based demangler, one sanitizer
      symbolizer test consistently appears to fail:
      
          Value of: DemangleSwiftAndCXX("foo")
            Actual: "float"
          Expected: "foo"
      
      This is because libcxxrt's __cxa_demangle() incorrectly demangles the "foo"
      identifier to "float".  It should return an error instead.
      
      For now, XFAIL this particular test for FreeBSD, until we can fix libcxxrt
      properly (which might take some time to coordinate with upstream).
      
      Reviewers: rnk, zaks.anna, emaste
      
      Subscribers: emaste, llvm-commits, kubabrecka
      
      Differential Revision: https://reviews.llvm.org/D23001
      ------------------------------------------------------------------------
      
      llvm-svn: 277423
      458d2d9d
    • Hans Wennborg's avatar
      Merging r277097: · ec84a0a7
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277097 | prazek | 2016-07-28 19:10:23 -0700 (Thu, 28 Jul 2016) | 5 lines
      
      [clang-tidy] Fixes to modernize-use-emplace
      
      Not everything is valid, but it should works for 99.8% cases
      
      https://reviews.llvm.org/D22208
      ------------------------------------------------------------------------
      
      llvm-svn: 277385
      ec84a0a7
    • Hans Wennborg's avatar
      Merging r277221: · 3a27de34
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277221 | echristo | 2016-07-29 15:11:11 -0700 (Fri, 29 Jul 2016) | 3 lines
      
      Remove unused variable.
      
      Fixes PR28761.
      ------------------------------------------------------------------------
      
      llvm-svn: 277384
      3a27de34
    • Hans Wennborg's avatar
      Merging r277114: · 5ca33d66
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277114 | majnemer | 2016-07-28 22:39:21 -0700 (Thu, 28 Jul 2016) | 6 lines
      
      [EarlyCSE] Correctly handle simplified, but live, instructions
      
      Some instructions may have their uses replaced with a symbolic constant.
      However, the instruction may still have side effects which percludes it
      from being removed from the function.  EarlyCSE treated such an
      instruction as if it were removed, resulting in PR28763.
      ------------------------------------------------------------------------
      
      llvm-svn: 277382
      5ca33d66
  5. Jul 30, 2016
    • Hans Wennborg's avatar
      Delete offloading-interoperability.c · ad3f1026
      Hans Wennborg authored
      The test is now failing on Windows. This is causing too much pain,
      let's just drop it from the branch.
      
      llvm-svn: 277207
      ad3f1026
    • Hans Wennborg's avatar
      Merging r276983, r277138 and r277141: · 4d46ceaf
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276983 | sfantao | 2016-07-28 07:56:19 -0700 (Thu, 28 Jul 2016) | 5 lines
      
      [OpenMP] Fix link command pattern in offloading interoperability test.
      
      It was causing a few bots to fail.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277138 | d0k | 2016-07-29 06:07:09 -0700 (Fri, 29 Jul 2016) | 4 lines
      
      Make test not fail on hosts where the default omp library is gomp.
      
      This is the case on some linuxes, just force libomp so we get the
      desired results.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277141 | djasper | 2016-07-29 06:45:03 -0700 (Fri, 29 Jul 2016) | 1 line
      
      Add missing '-no-canonical-prefixes' in test.
      ------------------------------------------------------------------------
      
      llvm-svn: 277193
      4d46ceaf
    • Hans Wennborg's avatar
      Merging r277135: · 739e31c3
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277135 | niravd | 2016-07-29 04:49:32 -0700 (Fri, 29 Jul 2016) | 12 lines
      
      Cleanup TransferDbgValues
      
      [DAG] Check debug values for invalidation before transferring and mark
      old debug values invalid when transferring to another SDValue.
      
      This fixes PR28613.
      
      Reviewers: jyknight, hans, dblaikie, echristo
      
      Subscribers: yaron.keren, ismail, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22858
      ------------------------------------------------------------------------
      
      llvm-svn: 277164
      739e31c3
  6. Jul 29, 2016
    • Hans Wennborg's avatar
      Merging r276980: · b6794b61
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276980 | tstellar | 2016-07-28 07:30:43 -0700 (Thu, 28 Jul 2016) | 12 lines
      
      AMDGPU/SI: Don't use reserved VGPRs for SGPR spilling
      
      Summary:
      We were using reserved VGPRs for SGPR spilling and this was causing
      some programs with a workgroup size of 1024 to use more than 64
      registers, which is illegal.
      
      Reviewers: arsenm, mareko, nhaehnle
      
      Subscribers: nhaehnle, arsenm, llvm-commits, kzhuravl
      
      Differential Revision: https://reviews.llvm.org/D22032
      ------------------------------------------------------------------------
      
      llvm-svn: 277084
      b6794b61
    • Hans Wennborg's avatar
      Merging r276435: · 2ec706fe
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276435 | arsenm | 2016-07-22 10:01:21 -0700 (Fri, 22 Jul 2016) | 4 lines
      
      AMDGPU: Fix i1 fp_to_int
      
      R600's i1 fp_to_uint selected but was incorrect according to
      what instcombine constant folds to.
      ------------------------------------------------------------------------
      
      llvm-svn: 277082
      2ec706fe
    • Hans Wennborg's avatar
      Merging r276119: · b5792d90
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276119 | yaxunl | 2016-07-20 07:38:06 -0700 (Wed, 20 Jul 2016) | 3 lines
      
      AMDGPU: Fix bug causing crash due to invalid opencl version metadata.
      
      Differential Revision: https://reviews.llvm.org/D22526
      ------------------------------------------------------------------------
      
      llvm-svn: 277079
      b5792d90
    • Hans Wennborg's avatar
      Merging r276956: · 454777f7
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276956 | majnemer | 2016-07-27 22:03:22 -0700 (Wed, 27 Jul 2016) | 6 lines
      
      [CodeView] Don't crash on functions without subprograms
      
      A function may have instructions annotated with debug info without
      having a subprogram.
      
      This fixes PR28747.
      ------------------------------------------------------------------------
      
      llvm-svn: 277078
      454777f7
    • Hans Wennborg's avatar
      Merging r275869: · 6da6f088
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275869 | arsenm | 2016-07-18 11:34:53 -0700 (Mon, 18 Jul 2016) | 7 lines
      
      AMDGPU: Remove dead check in AMDGPUPromoteAlloca
      
      This is currently only called with GEP users. A direct
      alloca would only happen with current typed pointers
      for arrays which are a perverse case.
      
      Also fix crashes on 0 x and 1 x arrays.
      ------------------------------------------------------------------------
      
      llvm-svn: 277077
      6da6f088
    • Hans Wennborg's avatar
      Merging r275868: · 09851a03
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275868 | arsenm | 2016-07-18 11:34:48 -0700 (Mon, 18 Jul 2016) | 4 lines
      
      AMDGPU: Remove dead code and redundant check
      
      Non intrinsic calls aren't really handled, and this
      IntrinsicInst dyn_cast checks for the function for us.
      ------------------------------------------------------------------------
      
      llvm-svn: 277076
      09851a03
    • Hans Wennborg's avatar
      Merging r276653: · 8a688571
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276653 | ssrivastava | 2016-07-25 10:17:06 -0700 (Mon, 25 Jul 2016) | 11 lines
      
      Support '#pragma once' in headers when using PCH
          
      The '#pragma once' directive was erroneously ignored when encountered
      in the header-file specified in generate-PCH-mode. This resulted in
      compile-time errors in some cases with legal code, and also a misleading
      warning being produced.
      
      Patch by Warren Ristow!
      
      Differential Revision: http://reviews.llvm.org/D19815
      
      ------------------------------------------------------------------------
      
      llvm-svn: 277075
      8a688571
    • Hans Wennborg's avatar
      Merging r276979: · a2cc88dc
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276979 | sfantao | 2016-07-28 07:29:18 -0700 (Thu, 28 Jul 2016) | 12 lines
      
      [OpenMP][CUDA] Do not forward OpenMP flags for CUDA device actions.
      
      Summary:
      This patch prevents OpenMP flags from being forwarded to CUDA device commands. That was causing the CUDA frontend to attempt to emit OpenMP code which is not supported.
      
      This fixes the bug reported in https://llvm.org/bugs/show_bug.cgi?id=28723.
      
      Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, tra, ABataev
      
      Subscribers: caomhin, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D22895
      ------------------------------------------------------------------------
      
      llvm-svn: 277004
      a2cc88dc
  7. Jul 28, 2016