[llvm] r179448 - Catch another case where SD fails to propagate node order.

Andrew Trick atrick at apple.com
Fri Apr 12 23:07:36 PDT 2013


Author: atrick
Date: Sat Apr 13 01:07:36 2013
New Revision: 179448

URL: http://llvm.org/viewvc/llvm-project?rev=179448&view=rev
Log:
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.

Modified:
    llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=179448&r1=179447&r2=179448&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Sat Apr 13 01:07:36 2013
@@ -1720,7 +1720,7 @@ SDNode *X86DAGToDAGISel::SelectAtomicLoa
       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 *
       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;
   }
 





More information about the llvm-commits mailing list