llvm-rL327898
commit
64c3384f94a1eb3e3510d6f66c3bccdfc9d9050b
Author: Nirav Dave <niravd@google.com>
Date: Thu Feb 1 16:11:59 2018 +0000
r327898/dependencies roll up
This is a squash of 13 commits required in the lead up to r327898,
which fixes https://github.com/JuliaLang/julia/issues/27603. The squashed
commits are:
332d15e981e86b9e058087174bb288ba18a15807
b659d3fca5d24c25ee73f979edb382f7f24e05e2
c01d1363ea080170fc5143d72f26eecd9270f03b
eab8a177a4caef9e42ef1d2aeb4ba15dc788d3f2
bedb1391781b009ace95f5586e7fae5f03fe0689
11d041a905f82ac78e7ccf2394773e80b93d147c
e1ec36c55a0127988f42a3329ca835617b30de09
b8d2903300c13d8fd151c8e5dc71017269617539
00884fea345f47ab05174a8f314ecd60d1676d02
28ab04cec0d9888af9d29946b3a048b8340abe0f
3dd52e62ea3087efcca63c3772183d9471abc742
bd3649ff6d6b4d18b3c6de253179d987a120518a
aea03035b9c633e6d745b6d3fc5b6378699f576c
Their commit messages follow below:
[SelectionDAG] Fix UpdateChains handling of TokenFactors
Summary:
In Instruction Selection UpdateChains replaces all matched Nodes'
chain references including interior token factors and deletes them.
This may allow nodes which depend on these interior nodes but are not
part of the set of matched nodes to be left with a dangling dependence.
Avoid this by doing the replacement for matched non-TokenFactor nodes.
Fixes PR36164.
Reviewers: jonpa, RKSimon, bogner
Subscribers: llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D42754
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323977
91177308-0d34-0410-b5e6-
96231b3b80d8
Regenerate test result for vastart-defs-eflags.ll. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323596
91177308-0d34-0410-b5e6-
96231b3b80d8
Regenerate test result for testb-je-fusion.ll. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323595
91177308-0d34-0410-b5e6-
96231b3b80d8
[X86] Avoid using high register trick for test instruction
Summary:
It seems it's main effect is to create addition copies when values are inr register that do not support this trick, which increase register pressure and makes the code bigger.
Reviewers: craig.topper, niravd, spatel, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42646
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323888
91177308-0d34-0410-b5e6-
96231b3b80d8
Add a regression test for problems caused by D42646 . NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323868
91177308-0d34-0410-b5e6-
96231b3b80d8
Add test case for truncated and promotion to test. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323663
91177308-0d34-0410-b5e6-
96231b3b80d8
[X86] Add test case to ensure testw is generated when optimizing for size. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323687
91177308-0d34-0410-b5e6-
96231b3b80d8
[X86] Generate testl instruction through truncates.
Summary:
This was introduced in D42646 but ended up being reverted because the original implementation was buggy.
Depends on D42646
Reviewers: craig.topper, niravd, spatel, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42741
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323899
91177308-0d34-0410-b5e6-
96231b3b80d8
[X86] Don't look for TEST instruction shrinking opportunities when the root node is a X86ISD::SUB.
I don't believe we ever create an X86ISD::SUB with a 0 constant which is what the TEST handling needs. The ternary operator at the end of this code shows up as only going one way in the llvm-cov report from the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324865
91177308-0d34-0410-b5e6-
96231b3b80d8
[X86] Teach LowerBUILD_VECTOR to recognize pair-wise splats of 32-bit elements and use a 64-bit broadcast
If we are splatting pairs of 32-bit elements, we can use a 64-bit broadcast to get the job done.
We could probably could probably do this with other sizes too, for example four 16-bit elements. Or we could broadcast pairs of 16-bit elements using a 32-bit element broadcast. But I've left that as a future improvement.
I've also restricted this to AVX2 only because we can only broadcast loads under AVX.
Differential Revision: https://reviews.llvm.org/D42086
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322730
91177308-0d34-0410-b5e6-
96231b3b80d8
[DAG, X86] Revert r327197 "Revert r327170, r327171, r327172"
Reland ISel cycle checking improvements after simplifying node id
invariant traversal and correcting typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327898
91177308-0d34-0410-b5e6-
96231b3b80d8
[ Modified for cherry-pick: Dropped Hexagon and SystemZ changes"
[DAG, X86] Fix ISel-time node insertion ids
As in SystemZ backend, correctly propagate node ids when inserting new
unselected nodes into the DAG during instruction Seleciton for X86
target.
Fixes PR36865.
Reviewers: jyknight, craig.topper
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D44797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328233
91177308-0d34-0410-b5e6-
96231b3b80d8
[DAG] Fix node id invalidation in Instruction Selection.
Invalidation should be bit negation. Add missing negation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328287
91177308-0d34-0410-b5e6-
96231b3b80d8
Remove failing tests
This removes tests that are failing due to codegen differences,
after the latest set of backports. Fixing thse for the backport
branch does not seem worth it.
Gbp-Pq: Topic julia
Gbp-Pq: Name llvm-rL327898.patch