diff options
author | Justin Holewinski <jholewinski@nvidia.com> | 2013-03-20 00:10:32 +0000 |
---|---|---|
committer | Justin Holewinski <jholewinski@nvidia.com> | 2013-03-20 00:10:32 +0000 |
commit | d068943809f09a96e6bb2885e40c5651c8b3447c (patch) | |
tree | a79b052e1827b868c8101936e0f1d1a281ea97af /llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | |
parent | 761b5cf0875ffb83b99be3c7c7d19e44732f6a34 (diff) | |
download | bcm5719-llvm-d068943809f09a96e6bb2885e40c5651c8b3447c.tar.gz bcm5719-llvm-d068943809f09a96e6bb2885e40c5651c8b3447c.zip |
Propagate DAG node ordering during type legalization and instruction selection
A node's ordering is only propagated during legalization if (a) the new node does
not have an ordering (is not a CSE'd node), or (b) the new node has an ordering
that is higher than the node being legalized.
llvm-svn: 177465
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index c3b6276a8dc..15001f506b0 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -785,8 +785,10 @@ void SelectionDAGISel::DoInstructionSelection() { if (ResNode == Node || Node->getOpcode() == ISD::DELETED_NODE) continue; // Replace node. - if (ResNode) + if (ResNode) { + CurDAG->AssignOrdering(ResNode, CurDAG->GetOrdering(Node)); ReplaceUses(Node, ResNode); + } // If after the replacement this node is not used any more, // remove this dead node. |