[DAG] Fix node id invalidation in Instruction Selection.
authorNirav Dave <niravd@google.com>
Fri, 23 Mar 2018 01:22:39 +0000 (01:22 +0000)
committerNirav Dave <niravd@google.com>
Fri, 23 Mar 2018 01:22:39 +0000 (01:22 +0000)
Invalidation should be bit negation. Add missing negation.

llvm-svn: 328287

llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index fcc1d8f4ed438fe341bd6fd08101000eed1fa8c1..c5af7877d7b9150c054b889f673ff696889b27cc 100644 (file)
@@ -1000,15 +1000,15 @@ void SelectionDAGISel::EnforceNodeIdInvariant(SDNode *Node) {
 // NodeId with the equivalent node id which is invalid for topological
 // pruning.
 void SelectionDAGISel::InvalidateNodeId(SDNode *N) {
-  int InvalidId = -N->getNodeId() + 1;
+  int InvalidId = -(N->getNodeId() + 1);
   N->setNodeId(InvalidId);
 }
 
 // getUninvalidatedNodeId - get original uninvalidated node id.
 int SelectionDAGISel::getUninvalidatedNodeId(SDNode *N) {
   int Id = N->getNodeId();
-  if (Id < 0)
-    return -Id + 1;
+  if (Id < -1)
+    return -(Id + 1);
   return Id;
 }