diff options
| author | Andrew Trick <atrick@apple.com> | 2013-04-13 06:07:36 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2013-04-13 06:07:36 +0000 |
| commit | 52b8387fd1755ab578daa7185199e8979d525fae (patch) | |
| tree | b00ef999662022e411c96bd11ad85a95c98075fb | |
| parent | fd3834f7a1cc06f3843a83080c65eadb613927f4 (diff) | |
| download | bcm5719-llvm-52b8387fd1755ab578daa7185199e8979d525fae.tar.gz bcm5719-llvm-52b8387fd1755ab578daa7185199e8979d525fae.zip | |
Catch another case where SD fails to propagate node order.
I need to handle this for the test case in my following scheduler
commit.
Work is already under way to redesign the mechanism for node order
propagation because this case by case approach is unmaintainable.
llvm-svn: 179448
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 6041669f818..c5f0fb74acc 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -1720,7 +1720,7 @@ SDNode *X86DAGToDAGISel::SelectAtomicLoadArith(SDNode *Node, EVT NVT) { Op = ADD; break; } - + Val = getAtomicLoadArithTargetConstant(CurDAG, dl, Op, NVT, Val); bool isUnOp = !Val.getNode(); bool isCN = Val.getNode() && (Val.getOpcode() == ISD::TargetConstant); @@ -2343,6 +2343,9 @@ SDNode *X86DAGToDAGISel::Select(SDNode *Node) { DEBUG(dbgs() << "=> "; ResHi.getNode()->dump(CurDAG); dbgs() << '\n'); } + // Propagate ordering to the last node, for now. + CurDAG->AssignOrdering(InFlag.getNode(), CurDAG->GetOrdering(Node)); + return NULL; } |

