summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>2018-05-18 11:54:04 +0000
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>2018-05-18 11:54:04 +0000
commitde54c058a68955c71e8040bffceeceed2816c2e5 (patch)
tree10895bcdcfb9a99102886e29ed76ed41ca2032bc /llvm/lib/Target
parent981a34c4282de3ac3863b305df2ded130bed8242 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp8
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;
}
OpenPOWER on IntegriCloud