llvm-rL327898
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Mon, 23 Mar 2020 10:59:23 +0000 (10:59 +0000)
committerGianfranco Costamagna <locutusofborg@debian.org>
Mon, 23 Mar 2020 10:59:23 +0000 (10:59 +0000)
commitc23417fd8468f7f9182964e9869a8d26d5ee46a6
tree86d68a0de1e82f295c4e4a936b7731050d082e0d
parent1cafff8f8791f11a1023088fb2f7f1afaf09567b
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
39 files changed:
include/llvm/CodeGen/SelectionDAGISel.h
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrArithmetic.td
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86MacroFusion.cpp
test/CodeGen/SystemZ/pr36164.ll [new file with mode: 0644]
test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll [deleted file]
test/CodeGen/X86/avg.ll
test/CodeGen/X86/avx-vbroadcastf128.ll
test/CodeGen/X86/avx2-vbroadcast.ll
test/CodeGen/X86/avx2-vbroadcasti128.ll
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
test/CodeGen/X86/avx512-vbroadcasti128.ll
test/CodeGen/X86/avx512vl-intrinsics-fast-isel.ll
test/CodeGen/X86/broadcastm-lowering.ll
test/CodeGen/X86/i256-add.ll [deleted file]
test/CodeGen/X86/insertelement-shuffle.ll
test/CodeGen/X86/masked_memop.ll
test/CodeGen/X86/merge-consecutive-stores.ll
test/CodeGen/X86/nontemporal.ll
test/CodeGen/X86/pr36274.ll [new file with mode: 0644]
test/CodeGen/X86/pr36312.ll [new file with mode: 0644]
test/CodeGen/X86/store_op_load_fold2.ll
test/CodeGen/X86/subvector-broadcast.ll [deleted file]
test/CodeGen/X86/test-shrink-bug.ll
test/CodeGen/X86/test-shrink.ll
test/CodeGen/X86/testb-je-fusion.ll
test/CodeGen/X86/var-permute-256.ll [deleted file]
test/CodeGen/X86/vastart-defs-eflags.ll
test/CodeGen/X86/vector-shuffle-combining-xop.ll
test/CodeGen/X86/vector-shuffle-variable-256.ll