diff options
author | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2018-05-18 11:54:04 +0000 |
---|---|---|
committer | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2018-05-18 11:54:04 +0000 |
commit | de54c058a68955c71e8040bffceeceed2816c2e5 (patch) | |
tree | 10895bcdcfb9a99102886e29ed76ed41ca2032bc /llvm/lib/Target/SystemZ | |
parent | 981a34c4282de3ac3863b305df2ded130bed8242 (diff) | |
download | bcm5719-llvm-de54c058a68955c71e8040bffceeceed2816c2e5.tar.gz bcm5719-llvm-de54c058a68955c71e8040bffceeceed2816c2e5.zip |
[SystemZ] Fold AHIMux in foldMemoryOperandImpl.
AHIMux can be folded the same way as AHI.
Review: Ulrich Weigand
llvm-svn: 332703
Diffstat (limited to 'llvm/lib/Target/SystemZ')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp index 99f17639d2e..e65abc4b03c 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp @@ -1509,7 +1509,13 @@ void SystemZDAGToDAGISel::Select(SDNode *Node) { CCMask = CurDAG->getConstant(ConstCCValid ^ ConstCCMask, SDLoc(Node), CCMask.getValueType()); SDValue Op4 = Node->getOperand(4); - Node = CurDAG->UpdateNodeOperands(Node, Op1, Op0, CCValid, CCMask, Op4); + SDNode *UpdatedNode = + CurDAG->UpdateNodeOperands(Node, Op1, Op0, CCValid, CCMask, Op4); + if (UpdatedNode != Node) { + // In case this node already exists, replace Node with it. + ReplaceNode(Node, UpdatedNode); + Node = UpdatedNode; + } } break; } |