1. Jul 26, 2016
    • Hans Wennborg's avatar
      Merging r276361: · 8e554281
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276361 | wolfgangp | 2016-07-21 16:28:18 -0700 (Thu, 21 Jul 2016) | 5 lines
      
      Reverting r275115 which caused PR28634.
      When empty (forwarding) basic blocks that are referenced by user labels
      are removed, incorrect code may be generated.
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 276656
      8e554281
    • Hans Wennborg's avatar
      Merging r276479: · 76fe58b1
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276479 | asbirlea | 2016-07-22 15:02:19 -0700 (Fri, 22 Jul 2016) | 11 lines
      
      Add flag to PassManagerBuilder to disable GVN Hoist Pass.
      
      Summary:
      Adding a flag to diable GVN Hoisting by default.
      Note: The GVN Hoist Pass causes some Halide tests to hang. Halide will disable the pass while investigating.
      
      Reviewers: llvm-commits, chandlerc, spop, dberlin
      
      Subscribers: mehdi_amini
      
      Differential Revision: https://reviews.llvm.org/D22639
      ------------------------------------------------------------------------
      
      llvm-svn: 276647
      76fe58b1
    • Hans Wennborg's avatar
      Merging Clang-side of r275967: (the LLVM side already merged in r276561) · 3ce6eede
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275967 | dsanders | 2016-07-19 03:49:03 -0700 (Tue, 19 Jul 2016) | 16 lines
      
      [mips] Correct label prefixes for N32 and N64.
      
      Summary:
      N32 and N64 follow the standard ELF conventions (.L) whereas O32 uses its own
      ($).
      
      This fixes the majority of object differences between -fintegrated-as and
      -fno-integrated-as.
      
      Reviewers: sdardis
      
      Subscribers: dsanders, sdardis, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22412
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 276643
      3ce6eede
  2. Jul 24, 2016
    • Daniel Sanders's avatar
      Merging r275968: · 5bdc21f2
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r275968 | dsanders | 2016-07-19 11:58:06 +0100 (Tue, 19 Jul 2016) | 7 lines
      
      [mips][ias] R_MIPS_GOT_(PAGE|OFST) do not need symbols
      
      Reviewers: sdardis
      
      Subscribers: dsanders, llvm-commits, sdardis
      
      Differential Revision: https://reviews.llvm.org/D22458
      ------------------------------------------------------------------------
      
      llvm-svn: 276562
      5bdc21f2
    • Daniel Sanders's avatar
      Merging r275967: · 120ca53c
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r275967 | dsanders | 2016-07-19 11:49:03 +0100 (Tue, 19 Jul 2016) | 16 lines
      
      [mips] Correct label prefixes for N32 and N64.
      
      Summary:
      N32 and N64 follow the standard ELF conventions (.L) whereas O32 uses its own
      ($).
      
      This fixes the majority of object differences between -fintegrated-as and
      -fno-integrated-as.
      
      Reviewers: sdardis
      
      Subscribers: dsanders, sdardis, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22412
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 276561
      120ca53c
    • Daniel Sanders's avatar
      Merging r275966: · 53da0ecd
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r275966 | dsanders | 2016-07-19 11:22:19 +0100 (Tue, 19 Jul 2016) | 11 lines
      
      [mips] Recognise the triple used by Debian stretch for mips64el.
      
      Summary:
      The triple used for this distribution is mips64el-linux-gnuabi64.
      
      Reviewers: sdardis
      
      Subscribers: sdardis, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22406
      
      ------------------------------------------------------------------------
      
      llvm-svn: 276560
      53da0ecd
  3. Jul 23, 2016
    • George Burgess IV's avatar
      Merging r276232: · f5408dc3
      George Burgess IV authored
      ------------------------------------------------------------------------
      r276232 | gbiv | 2016-07-20 20:28:13 -0700 (Wed, 20 Jul 2016) | 13 lines
      
      [Sema] Fix PR28623.
      
      In atomic builtins, we assumed that the LValue conversion on the first
      argument would succeed. So, we would crash given code like:
      
      ```
      void ovl(char);
      void ovl(int);
      __atomic_store_n(ovl, 0, 0);
      ```
      
      This patch makes us not assume that said conversion is successful. :)
      
      ------------------------------------------------------------------------
      
      llvm-svn: 276489
      f5408dc3
    • Eric Fiselier's avatar
      Merging r276215: · 765e9c1d
      Eric Fiselier authored
      ------------------------------------------------------------------------
      r276215 | ericwf | 2016-07-20 17:56:42 -0600 (Wed, 20 Jul 2016) | 9 lines
      
      [libunwind] Properly align _Unwind_Exception.
      
      Summary: _Unwind_Exception is required to be double word aligned. Currently the struct is under aligned.
      
      Reviewers: mclow.lists, compnerd, kledzik, emaste
      
      Subscribers: emaste, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D22543
      ------------------------------------------------------------------------
      
      llvm-svn: 276462
      765e9c1d
  4. Jul 22, 2016
    • Ed Maste's avatar
      Merge r276128: libunwind: limit stack usage in unwind cursor · e24755b5
      Ed Maste authored
      llvm-svn: 276424
      e24755b5
    • Hans Wennborg's avatar
      ReleaseNotes: s/3.7/3.8/ in 'since the 3.7 release' · 9c50fd5f
      Hans Wennborg authored
      llvm-svn: 276421
      9c50fd5f
    • Hans Wennborg's avatar
      Merging r276358, r276364, and r276368 · 0a3b90da
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276358 | spop | 2016-07-21 16:22:10 -0700 (Thu, 21 Jul 2016) | 6 lines
      
      GVH-hoist: only clone GEPs (PR28606)
      
      Do not clone stored values unless they are GEPs that are special cased to avoid
      hoisting them without hoisting their associated ld/st.
      
      Differential revision: https://reviews.llvm.org/D22652
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r276364 | spop | 2016-07-21 16:32:39 -0700 (Thu, 21 Jul 2016) | 1 line
      
      GVN-hoist: add missing check for all GEP operands available
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r276368 | spop | 2016-07-21 17:07:01 -0700 (Thu, 21 Jul 2016) | 1 line
      
      GVN-hoist: move check before mutating the IR
      ------------------------------------------------------------------------
      
      llvm-svn: 276420
      0a3b90da
    • Hans Wennborg's avatar
      Merging r276181: · 6c35e88a
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r276181 | majnemer | 2016-07-20 14:05:01 -0700 (Wed, 20 Jul 2016) | 6 lines
      
      [GVNHoist] Don't hoist PHI nodes
      
      We hoisted PHIs without respecting their special insertion point in the
      block, leading to verfier errors.
      
      This fixes PR28626.
      ------------------------------------------------------------------------
      
      llvm-svn: 276418
      6c35e88a
    • George Burgess IV's avatar
      [MSSA] Fix PR28632 in the 3.9 branch. · e30f938b
      George Burgess IV authored
      The now-removed assertion was really more for initial debugging; it's
      perfectly valid (albeit relatively rare) for `Q.Visited.size()` to be
      greater than 1,000. A similar patch hasn't been applied to trunk
      because the piece of code this assertion was a part of no longer exists
      in trunk.
      
      Fix okayed by Danny, merge to 3.9 okayed by Hans.
      
      llvm-svn: 276337
      e30f938b
  5. Jul 21, 2016
    • Eric Fiselier's avatar
      Merging r276003: · 669800fd
      Eric Fiselier authored
      ------------------------------------------------------------------------
      r276003 | ericwf | 2016-07-19 11:56:20 -0600 (Tue, 19 Jul 2016) | 35 lines
      
      Fix undefined behavior in __tree
      
      Summary:
      This patch attempts to fix the undefined behavior in __tree by changing the node pointer types used throughout. The pointer types are changed for raw pointers in the current ABI and for fancy pointers in ABI V2 (since the fancy pointer types may not be ABI compatible).
      
      The UB in `__tree` arises because tree downcasts the embedded end node and then deferences that pointer. Currently there are 3 node types in __tree.
      
      * `__tree_end_node` which contains the `__left_` pointer. This node is embedded within the container.
      * `__tree_node_base` which contains `__right_`, `__parent_` and `__is_black`. This node is used throughout the tree rebalancing algorithms.
      * `__tree_node` which contains `__value_`.
      
      Currently `__tree` stores the start of the tree, `__begin_node_`, as a pointer to a `__tree_node`. Additionally the iterators store their position as a pointer to a `__tree_node`. In both of these cases the pointee can be the end node. This is fixed by changing them to store `__tree_end_node` pointers instead.
      
      To make this change I introduced an `__iter_pointer` typedef which is defined to be a pointer to either `__tree_end_node` in the new ABI or `__tree_node` in the current one.
      Both `__tree::__begin_node_` and iterator pointers are now stored as `__iter_pointers`.
      
      The other situation where `__tree_end_node` is stored as the wrong type is in `__tree_node_base::__parent_`.  Currently `__left_`, `__right_`, and `__parent_` are all `__tree_node_base` pointers. Since the end node will only be stored in `__parent_` the fix is to change `__parent_` to be a pointer to `__tree_end_node`.
      
      To make this change I introduced a `__parent_pointer` typedef which is defined to be a pointer to either `__tree_end_node` in the new ABI or `__tree_node_base` in the current one.
      
      Note that in the new ABI `__iter_pointer` and `__parent_pointer` are the same type (but not in the old one). The confusion between these two types is unfortunate but it was the best solution I could come up with that maintains the ABI.
      
      The typedef changes force a ton of explicit type casts to correct pointer types and to make current code compatible with both the old and new pointer typedefs. This is the bulk of the change and it's really messy. Unfortunately I don't know how to avoid it.
      
      Please let me know what you think.
      
      
      
      
      
      Reviewers: howard.hinnant, mclow.lists
      
      Subscribers: howard.hinnant, bbannier, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D20786
      ------------------------------------------------------------------------
      
      llvm-svn: 276212
      669800fd
  6. Jul 20, 2016
    • Hans Wennborg's avatar
      Merging r275935: · 64903ae4
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275935 | arsenm | 2016-07-18 17:35:22 -0700 (Mon, 18 Jul 2016) | 6 lines
      
      AMDGPU/SI: Fix SI scheduler refcount issue
      
      Without this fix, releaseSuccessors when InOrOutBlock is
      false could release SUs outside the schedule BasicBlock.
      
      Patch by Axel Davy
      ------------------------------------------------------------------------
      
      llvm-svn: 276116
      64903ae4
    • Hans Wennborg's avatar
      Merging r275943: · ebc53c20
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275943 | compnerd | 2016-07-18 19:13:08 -0700 (Mon, 18 Jul 2016) | 1 line
      
      clang-rename: fix referenced variable in vim-script
      ------------------------------------------------------------------------
      
      llvm-svn: 276115
      ebc53c20
    • Hans Wennborg's avatar
      Merging r275946 and r275948: · f1c81f72
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r275946 | bruening | 2016-07-18 22:03:38 -0700 (Mon, 18 Jul 2016) | 5 lines
      
      [esan] Fix sideline thread flaky assert
      
      Fixes an esan sideline thread CHECK that failed to account for the sideline
      thread reaching its code before the internal_clone() return value was
      assigned in the parent.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r275948 | bruening | 2016-07-18 22:06:48 -0700 (Mon, 18 Jul 2016) | 4 lines
      
      [esan|wset] Fix flaky sampling tests
      
      Adds a new esan public interface routine __esan_get_sample_count() and uses
      it to ensure that tests of sampling receive the minimum number of samples.
      ------------------------------------------------------------------------
      
      llvm-svn: 276114
      f1c81f72
    • Hans Wennborg's avatar
      Add attribute abi_tag to the release notes · 891d9aaf
      Hans Wennborg authored
      Patch by Dmitry Polukhin <dmitry.polukhin@gmail.com>!
      
      Differential Revision: https://reviews.llvm.org/D21970
      
      llvm-svn: 276113
      891d9aaf
  7. Jul 19, 2016