[llvm] r357256 - [DAGCombine] Improve Lifetime node chains.
Galina Kistanova via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 29 13:49:00 PDT 2019
Hello Nirav,
This commit broke tests on the next builder:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/16678
. . .
Failing Tests (3):
LLVM :: CodeGen/X86/StackColoring.ll
LLVM :: CodeGen/X86/unwindraise.ll
LLVM :: DebugInfo/COFF/lexicalblock.ll
Please have a look?
Thanks
Galina
On Fri, Mar 29, 2019 at 7:08 AM Nirav Dave via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: niravd
> Date: Fri Mar 29 07:09:47 2019
> New Revision: 357256
>
> URL: http://llvm.org/viewvc/llvm-project?rev=357256&view=rev
> Log:
> [DAGCombine] Improve Lifetime node chains.
>
> Improve both start and end lifetime nodes chain dependencies.
>
> Reviewers: courbet
>
> Reviewed By: courbet
>
> Subscribers: hiraditya, llvm-commits
>
> Tags: #llvm
>
> Differential Revision: https://reviews.llvm.org/D59795
>
> Modified:
> llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> llvm/trunk/test/CodeGen/X86/swap.ll
> llvm/trunk/test/DebugInfo/COFF/lexicalblock.ll
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=357256&r1=357255&r2=357256&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Mar 29
> 07:09:47 2019
> @@ -384,6 +384,10 @@ namespace {
> SDValue replaceStoreOfFPConstant(StoreSDNode *ST);
>
> SDValue visitSTORE(SDNode *N);
> +
> + SDValue ImproveLifetimeNodeChain(SDNode *N);
> +
> + SDValue visitLIFETIME_START(SDNode *N);
> SDValue visitLIFETIME_END(SDNode *N);
> SDValue visitINSERT_VECTOR_ELT(SDNode *N);
> SDValue visitEXTRACT_VECTOR_ELT(SDNode *N);
> @@ -1604,6 +1608,7 @@ SDValue DAGCombiner::visit(SDNode *N) {
> case ISD::MLOAD: return visitMLOAD(N);
> case ISD::MSCATTER: return visitMSCATTER(N);
> case ISD::MSTORE: return visitMSTORE(N);
> + case ISD::LIFETIME_START: return visitLIFETIME_START(N);
> case ISD::LIFETIME_END: return visitLIFETIME_END(N);
> case ISD::FP_TO_FP16: return visitFP_TO_FP16(N);
> case ISD::FP16_TO_FP: return visitFP16_TO_FP(N);
> @@ -15654,7 +15659,32 @@ SDValue DAGCombiner::visitSTORE(SDNode *
> return ReduceLoadOpStoreWidth(N);
> }
>
> +SDValue DAGCombiner::ImproveLifetimeNodeChain(SDNode *N) {
> + auto Chain = N->getOperand(0);
> + auto NewChain = FindBetterChain(N, Chain);
> + if (NewChain != Chain) {
> + SDNode *N2 = DAG.UpdateNodeOperands(N, NewChain, N->getOperand(1));
> + // Make sure users of new N still depend on Chain
> + auto TF = DAG.getNode(ISD::TokenFactor, SDLoc(N2), MVT::Other, Chain,
> + SDValue(N2, 0));
> + DAG.ReplaceAllUsesOfValueWith(SDValue(N2, 0), TF);
> + AddToWorklist(DAG.UpdateNodeOperands(TF.getNode(), Chain, SDValue(N2,
> 0)));
> + AddToWorklist(N2);
> + return SDValue(N, 0);
> + }
> + return SDValue();
> +}
> +
> +SDValue DAGCombiner::visitLIFETIME_START(SDNode *N) {
> + if (SDValue V = ImproveLifetimeNodeChain(N))
> + return V;
> + return SDValue();
> +}
> +
> SDValue DAGCombiner::visitLIFETIME_END(SDNode *N) {
> + if (SDValue V = ImproveLifetimeNodeChain(N))
> + return V;
> +
> const auto *LifetimeEnd = cast<LifetimeSDNode>(N);
> if (!LifetimeEnd->hasOffset())
> return SDValue();
>
> Modified: llvm/trunk/test/CodeGen/X86/swap.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/swap.ll?rev=357256&r1=357255&r2=357256&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/swap.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/swap.ll Fri Mar 29 07:09:47 2019
> @@ -94,7 +94,6 @@ define dso_local void @twoallocs(i8* noc
> ; AA-LABEL: twoallocs:
> ; AA: # %bb.0: # %entry
> ; AA-NEXT: vmovups (%rdi), %xmm0
> -; AA-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
> ; AA-NEXT: vmovups %xmm0, (%rsi)
> ; AA-NEXT: retq
> entry:
> @@ -125,7 +124,6 @@ define dso_local void @onealloc_readback
> ; AA-LABEL: onealloc_readback_1:
> ; AA: # %bb.0: # %entry
> ; AA-NEXT: vmovups (%rsi), %xmm0
> -; AA-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
> ; AA-NEXT: vmovups %xmm0, (%rdi)
> ; AA-NEXT: retq
> entry:
> @@ -155,7 +153,6 @@ define dso_local void @onealloc_readback
> ; AA-LABEL: onealloc_readback_2:
> ; AA: # %bb.0: # %entry
> ; AA-NEXT: vmovups (%rsi), %xmm0
> -; AA-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
> ; AA-NEXT: vmovups %xmm0, (%rdi)
> ; AA-NEXT: retq
> entry:
>
> Modified: llvm/trunk/test/DebugInfo/COFF/lexicalblock.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/lexicalblock.ll?rev=357256&r1=357255&r2=357256&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/COFF/lexicalblock.ll (original)
> +++ llvm/trunk/test/DebugInfo/COFF/lexicalblock.ll Fri Mar 29 07:09:47 2019
> @@ -80,19 +80,6 @@
> ; CHECK: ScopeEndSym {
> ; CHECK: Kind: S_END {{.*}}
> ; CHECK: }
> -; CHECK: BlockSym {
> -; CHECK: Kind: S_BLOCK32 {{.*}}
> -; CHECK: BlockName:
> -; CHECK: }
> -; CHECK: ScopeEndSym {
> -; CHECK: }
> -; CHECK: BlockSym {
> -; CHECK: Kind: S_BLOCK32 {{.*}}
> -; CHECK: BlockName:
> -; CHECK: }
> -; CHECK: ScopeEndSym {
> -; CHECK: Kind: S_END {{.*}}
> -; CHECK: }
> ; CHECK: ProcEnd {
> ; CHECK: }
> ;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190329/cd6f164f/attachment.html>
More information about the llvm-commits
mailing list