diff options
| author | Justin Holewinski <jholewinski@nvidia.com> | 2013-03-20 14:51:01 +0000 |
|---|---|---|
| committer | Justin Holewinski <jholewinski@nvidia.com> | 2013-03-20 14:51:01 +0000 |
| commit | c2d2c8939c276f7ae0cf4d1f8cc9dea7509f5033 (patch) | |
| tree | a2164fb999638fb56ad61df13496e83f4beadf9d /llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h | |
| parent | 66dc2ec30b11a111ec9b95b3e0739b7b7b84857a (diff) | |
| download | bcm5719-llvm-c2d2c8939c276f7ae0cf4d1f8cc9dea7509f5033.tar.gz bcm5719-llvm-c2d2c8939c276f7ae0cf4d1f8cc9dea7509f5033.zip | |
Move SDNode order propagation to SDNodeOrdering, which also fixes a missed
case of order propagation during isel.
Thanks Owen for the suggestion!
llvm-svn: 177525
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h b/llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h index d2269f8accf..74010a8096c 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h +++ b/llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h @@ -34,7 +34,9 @@ public: SDNodeOrdering() {} void add(const SDNode *Node, unsigned O) { - OrderMap[Node] = O; + unsigned OldOrder = getOrder(Node); + if (OldOrder == 0 || (OldOrder > 0 && O < OldOrder)) + OrderMap[Node] = O; } void remove(const SDNode *Node) { DenseMap<const SDNode*, unsigned>::iterator Itr = OrderMap.find(Node); |

