1. Aug 12, 2016
    • Hans Wennborg's avatar
      Merging r278387: · eb6343e2
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278387 | marshall | 2016-08-11 11:46:24 -0700 (Thu, 11 Aug 2016) | 1 line
      
      Remove test for the sign of a NaN - doesn't work on MIPS, not strictly legal. Fixes bug 28936
      ------------------------------------------------------------------------
      
      llvm-svn: 278425
      eb6343e2
    • Hans Wennborg's avatar
      Merging r278413: · 6ea76213
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278413 | gberry | 2016-08-11 14:05:17 -0700 (Thu, 11 Aug 2016) | 17 lines
      
      [SCEV] Update interface to handle SCEVExpander insert point motion.
      
      Summary:
      This is an extension of the fix in r271424.  That fix dealt with builder
      insert points being moved by SCEV expansion, but only for the lifetime
      of the expand call.  This change modifies the interface so that LSR can
      safely call expand multiple times at the same insert point and do the
      right thing if one of the expansions decides to move the original insert
      point.
      
      This is a fix for PR28719.
      
      Reviewers: sanjoy
      
      Subscribers: llvm-commits, mcrosier, mzolotukhin
      
      Differential Revision: https://reviews.llvm.org/D23342
      ------------------------------------------------------------------------
      
      llvm-svn: 278424
      6ea76213
    • Hans Wennborg's avatar
      Merging r278370: · 3d88a187
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278370 | mkuper | 2016-08-11 10:38:33 -0700 (Thu, 11 Aug 2016) | 7 lines
      
      Make TwoAddressInstructionPass::rescheduleMIBelowKill subreg-aware
      
      This fixes PR28824.
      
      Differential Revision: https://reviews.llvm.org/D23220
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 278422
      3d88a187
    • Hans Wennborg's avatar
      Merging r277522: · 2a531d02
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277522 | dcoughlin | 2016-08-02 14:07:23 -0700 (Tue, 02 Aug 2016) | 8 lines
      
      [CFG] Fix crash finding destructor of lifetime-extended temporary.
      
      Fix a crash under -Wthread-safety when finding the destructor for a
      lifetime-extending reference.
      
      A patch by Nandor Licker!
      
      Differential Revision: https://reviews.llvm.org/D22419
      ------------------------------------------------------------------------
      
      llvm-svn: 278376
      2a531d02
    • Hans Wennborg's avatar
      Merging r276900: · 3e892bf1
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276900 | epilk | 2016-07-27 11:25:10 -0700 (Wed, 27 Jul 2016) | 5 lines
      
      [Sema] Teach getCurrentThisType to reconize lambda in in-class initializer
      
      Fixes PR27994, a crash on valid.
      
      Differential revision: https://reviews.llvm.org/D21145
      ------------------------------------------------------------------------
      
      llvm-svn: 278374
      3e892bf1
  2. Aug 11, 2016
    • Hans Wennborg's avatar
      Merging r276712: · 6cee7f20
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276712 | eugenis | 2016-07-25 17:05:14 -0700 (Mon, 25 Jul 2016) | 3 lines
      
      [safestack] Fix stack guard live range.
      
      Stack guard slot is live throughout the function.
      ------------------------------------------------------------------------
      
      llvm-svn: 278283
      6cee7f20
    • Hans Wennborg's avatar
      Merging r276676: · 3d9fd919
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276676 | eugenis | 2016-07-25 12:25:40 -0700 (Mon, 25 Jul 2016) | 1 line
      
      Fix invalid iterator use in safestack coloring.
      ------------------------------------------------------------------------
      
      llvm-svn: 278281
      3d9fd919
    • Hans Wennborg's avatar
      Merging r278234 and r278235: · 52360ab0
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278234 | joey | 2016-08-10 08:57:02 -0700 (Wed, 10 Aug 2016) | 5 lines
      
      [OpenCL] Change block descriptor address space to constant.
      
      The block descriptor is a GlobalVariable in the LLVM IR, so it shouldn't be
      in the private address space.
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r278235 | joey | 2016-08-10 09:04:14 -0700 (Wed, 10 Aug 2016) | 2 lines
      
      [OpenCL] Fix typo in test that I accidentally introduced in my previous commit.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 278248
      52360ab0
    • Hans Wennborg's avatar
      Merging r276051 and r276823: · 3e345508
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276051 | arsenm | 2016-07-19 16:16:53 -0700 (Tue, 19 Jul 2016) | 8 lines
      
      AMDGPU: Change fdiv lowering based on !fpmath metadata
      
      If 2.5 ulp is acceptable, denormals are not required, and
      isn't a reciprocal which will already be handled, replace
      with a faster fdiv.
      
      Simplify the lowering tests by using per function
      subtarget features.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r276823 | arsenm | 2016-07-26 16:25:44 -0700 (Tue, 26 Jul 2016) | 4 lines
      
      AMDGPU: Use rcp for fdiv 1, x with fpmath metadata
      
      Using rcp should be OK for safe math usually, so this
      should not be replacing the original fdiv.
      ------------------------------------------------------------------------
      
      llvm-svn: 278243
      3e345508
    • Hans Wennborg's avatar
      Merging r278139: · 1969971e
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278139 | rnk | 2016-08-09 10:23:56 -0700 (Tue, 09 Aug 2016) | 6 lines
      
      [clang-cl] Make -gline-tables-only imply -gcodeview
      
      It's surprising that you have to pass /Z7 in addition to -gcodeview to
      get debug info. The sanitizer runtime, for example, expects that if the
      compiler supports the -gline-tables-only flag, then it will emit debug
      info.
      ------------------------------------------------------------------------
      
      llvm-svn: 278240
      1969971e
    • Hans Wennborg's avatar
      Merging r278002: · 8e117043
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278002 | sbaranga | 2016-08-08 06:13:57 -0700 (Mon, 08 Aug 2016) | 18 lines
      
      [AArch64] PR28877: Don't assume we're running after legalization when creating vcvtfp2fxs
      
      Summary:
      The DAG combine transformation that was generating the
      aarch64_neon_vcvtfp2fxs node was assuming that all
      inputs where legal and wasn't accounting that the input
      could be a v4f64 if we're trying to do the transformation
      before legalization. We now bail out in this case.
      
      All illegal types besides v4f64 were already rejected.
      
      Fixes https://llvm.org/bugs/show_bug.cgi?id=28877.
      
      Reviewers: jmolloy
      
      Subscribers: aemerson, rengolin, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D23261
      ------------------------------------------------------------------------
      
      llvm-svn: 278239
      8e117043
  3. Aug 10, 2016
  4. Aug 09, 2016
    • Hans Wennborg's avatar
      Merging r278086: · fd006081
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278086 | matze | 2016-08-08 18:47:26 -0700 (Mon, 08 Aug 2016) | 6 lines
      
      X86InstrInfo: Update liveness in classifyLea()
      
      We need to update liveness information when we create COPYs in
      classifyLea().
      
      This fixes http://llvm.org/28301
      ------------------------------------------------------------------------
      
      llvm-svn: 278128
      fd006081
    • Hans Wennborg's avatar
      Merging r278036: · 4ef81a7f
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278036 | dim | 2016-08-08 11:34:05 -0700 (Mon, 08 Aug 2016) | 18 lines
      
      Fix linking of omp_foreign_thread_team_reuse test on FreeBSD
      
      Summary:
      On FreeBSD, linking the misc_bugs/omp_foreign_thread_team_reuse.c test
      case fails with:
      
         /usr/local/bin/ld: /tmp/omp_foreign_thread_team_reuse-c5e71b.o: undefined reference to symbol 'pthread_create@@FBSD_1.0'
      
      This is because the program is linked without `-lpthread`.  Since the
      %libomp-compile-and-run macro does not allow that option to be added to
      the compile command line, split it up and add the required `-lpthread`
      between %libomp-compile and %libomp-run.
      
      Reviewers: jlpeyton, hfinkel, Hahnfeld
      
      Subscribers: Hahnfeld, emaste, openmp-commits
      
      Differential Revision: https://reviews.llvm.org/D23084
      ------------------------------------------------------------------------
      
      llvm-svn: 278059
      4ef81a7f
    • Hans Wennborg's avatar
      Merging r277426: · 4e15deb8
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277426 | nitesh.jain | 2016-08-02 00:18:07 -0700 (Tue, 02 Aug 2016) | 7 lines
      
      [LLVM][MIPS] Add (D)SUBU, (D)ADDU, LUI instructions emulation . Fix emulation for (D)ADDIU, SD/SW and LW/LD instructions
      
      Reviewers: clayborg, jaydeep, bhushan
      
      Subscribers: mohit.bhakkad, slthakur, sdardis, lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D20357
      ------------------------------------------------------------------------
      
      llvm-svn: 278047
      4e15deb8
    • Hans Wennborg's avatar
      Merging r277343: · 7ae7c29b
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277343 | nitesh.jain | 2016-08-01 06:45:51 -0700 (Mon, 01 Aug 2016) | 7 lines
      
      [LLVM][MIPS] Fix FPU Size Based on Dynamic FR.
      
      Reviewers: jingham, clayborg
      
      Subscribers: jaydeep, bhushan, mohit.bhakkad, slthakur, lldb-commits, emaste, nemanjai, labath, sdardis
      
      Differential Revision: https://reviews.llvm.org/D20357
      ------------------------------------------------------------------------
      
      llvm-svn: 278046
      7ae7c29b
    • Kai Nacke's avatar
      Add LDC compiler to list of external OS projects using LLVM 3.9 · 0316f30e
      Kai Nacke authored
      llvm-svn: 278045
      0316f30e
    • Hans Wennborg's avatar
      Merging r278030 with version number adjusted: · ae8bfb57
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278030 | eugenezelenko | 2016-08-08 10:59:02 -0700 (Mon, 08 Aug 2016) | 4 lines
      
      CMakeLists.txt cleanups: synchronize version with rest of LLVM, consistent spacing.
      
      Differential revision: https://reviews.llvm.org/D23092
      
      ------------------------------------------------------------------------
      
      llvm-svn: 278044
      ae8bfb57
    • Hans Wennborg's avatar
      Merging r278029 with version number adjusted: · dd08defb
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r278029 | eugenezelenko | 2016-08-08 10:56:28 -0700 (Mon, 08 Aug 2016) | 4 lines
      
      CMakeLists.txt cleanups: synchronize version and CMake minimum required version with rest of LLVM, consistent spacing.
      
      Differential revision: https://reviews.llvm.org/D23094
      
      ------------------------------------------------------------------------
      
      llvm-svn: 278043
      dd08defb
    • Hans Wennborg's avatar
      Merging r277868: · f37ca4f4
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277868 | compnerd | 2016-08-05 14:35:28 -0700 (Fri, 05 Aug 2016) | 4 lines
      
      unwind: disable executable stacks
      
      Similar to compiler-rt, ensure that we disable executable stacks for the custom
      assembly.
      ------------------------------------------------------------------------
      
      llvm-svn: 278023
      f37ca4f4
    • Hans Wennborg's avatar
      Merging r277796, r277797, r277866, r277889 and r277900: · 404f2eb9
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277796 | rtrieu | 2016-08-04 19:39:30 -0700 (Thu, 04 Aug 2016) | 6 lines
      
      Allow -1 to assign max value to unsigned bitfields.
      
      Silence the -Wbitfield-constant-conversion warning for when -1 or other
      negative values are assigned to unsigned bitfields, provided that the bitfield
      is wider than the minimum number of bits needed to encode the negative value.
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277797 | rtrieu | 2016-08-04 20:16:36 -0700 (Thu, 04 Aug 2016) | 7 lines
      
      Fix crash in template type diffing.
      
      When the type being diffed is a type alias, and the orginal type is not a
      templated type, then there will be no unsugared TemplateSpecializationType.
      When this happens, exit early from the constructor.  Also add assertions to
      the other iterator accessor to prevent the iterator from being used.
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277866 | rtrieu | 2016-08-05 14:02:34 -0700 (Fri, 05 Aug 2016) | 12 lines
      
      Fix false positive in -Wunsequenced and templates.
      
      For builtin logical operators, there is a well-defined ordering of argument
      evaluation.  For overloaded operator of the same type, there is no argument
      evaluation order, similar to other function calls.  When both are present,
      uninstantiated templates with an operator&& is treated as an unresolved
      function call.  Unresolved function calls are treated as normal function calls,
      and may result in false positives when the builtin logical operator is used.
      Have the unsequenced checker ignore dependent expressions to avoid this
      false positive.  The check also happens in template instantiations to catch
      when the overloaded operator is used.
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277889 | rtrieu | 2016-08-05 16:24:47 -0700 (Fri, 05 Aug 2016) | 9 lines
      
      Fix two false positives in -Wreturn-stack-address
      
      If the return type is a pointer and the function returns the reference to a
      pointer, don't warn since only the value is returned, not the reference.
      
      If a reference function parameter appears in the reference chain, don't warn
      since binding happens at the caller scope, so addresses returned are not
      to local stack.  This includes default arguments as well.
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r277900 | rtrieu | 2016-08-05 18:44:06 -0700 (Fri, 05 Aug 2016) | 2 lines
      
      Fix typos from r277797 and unused variable from r277889.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 278020
      404f2eb9
    • Hans Wennborg's avatar
      Merging r277743: · 4192c1db
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r277743 | bader | 2016-08-04 11:06:27 -0700 (Thu, 04 Aug 2016) | 12 lines
      
      [OpenCL] Added underscores to the names of 'to_addr' OpenCL built-ins.
      
      Summary:
      In order to re-define OpenCL built-in functions
      'to_{private,local,global}' in OpenCL run-time library LLVM names must
      be different from the clang built-in function names.
      
      Reviewers: yaxunl, Anastasia
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D23120
      ------------------------------------------------------------------------
      
      llvm-svn: 278019
      4192c1db
  5. Aug 08, 2016
  6. Aug 05, 2016
    • Simon Atanasyan's avatar
      Update release notes for MIPS target · 59f49e16
      Simon Atanasyan authored
      llvm-svn: 277807
      59f49e16
    • 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
  7. 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
  8. Aug 03, 2016