- Jul 26, 2016
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r276389 | majnemer | 2016-07-21 21:54:44 -0700 (Thu, 21 Jul 2016) | 6 lines Don't remove side effecting instructions due to ConstantFoldInstruction Just because we can constant fold the result of an instruction does not imply that we can delete the instruction. It may have side effects. This fixes PR28655. ------------------------------------------------------------------------ llvm-svn: 276660
-
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
-
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
-
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
-
- Jul 24, 2016
-
-
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
-
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
-
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
-
- Jul 23, 2016
-
-
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
-
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
-
- Jul 22, 2016
-
-
Ed Maste authored
llvm-svn: 276424
-
Hans Wennborg authored
llvm-svn: 276421
-
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
-
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
-
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
-
- Jul 21, 2016
-
-
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
-
- Jul 20, 2016
-
-
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
-
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
-
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
-
Hans Wennborg authored
Patch by Dmitry Polukhin <dmitry.polukhin@gmail.com>! Differential Revision: https://reviews.llvm.org/D21970 llvm-svn: 276113
-
- Jul 19, 2016
-
-
Tim Northover authored
------------------------------------------------------------------------ r275866 | tnorthover | 2016-07-18 11:28:52 -0700 (Mon, 18 Jul 2016) | 6 lines CodeGenPrep: use correct function to determine Global's alignment. Elsewhere (particularly computeKnownBits) we assume that a global will be aligned to the value returned by Value::getPointerAlignment. This is used to boost the alignment on memcpy/memset, so any target-specific request can only increase that value. ------------------------------------------------------------------------ llvm-svn: 275918
-
Hans Wennborg authored
------------------------------------------------------------------------ r275879 | rnk | 2016-07-18 11:53:50 -0700 (Mon, 18 Jul 2016) | 1 line Fix -Wmicrosoft-enum-value in GVNHoist.cpp ------------------------------------------------------------------------ llvm-svn: 275910
-
Hans Wennborg authored
------------------------------------------------------------------------ r275880 | dcoughlin | 2016-07-18 11:57:50 -0700 (Mon, 18 Jul 2016) | 3 lines Revert "[analyzer] Add checker modeling potential C++ self-assignment" This reverts commit r275820. It is failing on the bots. ------------------------------------------------------------------------ llvm-svn: 275902
-
Hans Wennborg authored
------------------------------------------------------------------------ r275898 | hans | 2016-07-18 13:06:27 -0700 (Mon, 18 Jul 2016) | 8 lines Revert r273099 "If the revision number starts with r, drop it. It will get added back" This doesn't seem to work with Bash: $ /work/llvm/utils/release/merge.sh --proj llvm --rev r275870 /work/llvm/utils/release/merge.sh: line 34: ${$1#r}: bad substitution I get the same error with and without a leading 'r'. ------------------------------------------------------------------------ llvm-svn: 275900 -
Hans Wennborg authored
------------------------------------------------------------------------ r275870 | arsenm | 2016-07-18 11:34:59 -0700 (Mon, 18 Jul 2016) | 1 line AMDGPU/R600: Replace barrier intrinsics ------------------------------------------------------------------------ llvm-svn: 275896
-
Hans Wennborg authored
llvm-svn: 275851
-
Hans Wennborg authored
llvm-svn: 275850
-
Hans Wennborg authored
llvm-svn: 275841 llvm-svn: 275839 llvm-svn: 275838 llvm-svn: 275836 llvm-svn: 275835 llvm-svn: 275834 llvm-svn: 275833 llvm-svn: 275832 llvm-svn: 275831 llvm-svn: 275829 llvm-svn: 275828
-
Reid Kleckner authored
llvm-svn: 275826
-
Krzysztof Parzyszek authored
This is not compliant with the official ABI, but allows experimentation with calling conventions. llvm-svn: 275825
-
Krzysztof Parzyszek authored
llvm-svn: 275824
-
Simon Pilgrim authored
Currently we only decode broadcasts from a vector of the same size. llvm-svn: 275823
-
Krzysztof Parzyszek authored
This is compliant with the official ABI, but allows experimentation with calling conventions. llvm-svn: 275822
-
Jason Henline authored
llvm-svn: 275821
-
Devin Coughlin authored
This checker checks copy and move assignment operators whether they are protected against self-assignment. Since C++ core guidelines discourages explicit checking for `&rhs==this` in general we take a different approach: in top-frame analysis we branch the exploded graph for two cases, where &rhs==this and &rhs!=this and let existing checkers (e.g. unix.Malloc) do the rest of the work. It is important that we check all copy and move assignment operator in top frame even if we checked them already since self-assignments may happen undetected even in the same translation unit (e.g. using random indices for an array what may or may not be the same). A patch by Ádám Balogh! Differential Revision: https://reviews.llvm.org/D19311 llvm-svn: 275820
-
Marshall Clow authored
Don't use pthread initializers in constexpr constructors. Patch by elram. Reviewed at https://reviews.llvm.org/D21637. llvm-svn: 275819
-
Chih-Hung Hsieh authored
DAGTypeLegalizer::CanSkipSoftenFloatOperand should allow SELECT op code for x86_64 fp128 type for MME targets, so SoftenFloatOperand does not abort on SELECT op code. Differential Revision: http://reviews.llvm.org/D21758 llvm-svn: 275818
-
Paul Robinson authored
llvm-svn: 275817
-
https://reviews.llvm.org/D22393Etienne Bergeron authored
It is breaking build 32-bit build bots. llvm-svn: 275816
-
David Majnemer authored
We negated a value with a signed type which invited problems when that value was the most negative signed number. Use an unsigned type for the value instead. It will compute the same twos complement result without the UB. llvm-svn: 275815
-
Jason Henline authored
llvm-svn: 275814
-