]> granicus.if.org Git - llvm/commitdiff
AMDGPU: Fix input chain when gluing copies to m0
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 14 Jun 2019 13:33:36 +0000 (13:33 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 14 Jun 2019 13:33:36 +0000 (13:33 +0000)
I don't think this was causing any observable issues, but was making
reading the DAG dump confusing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363389 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp

index 60bf9537185d86072de27b05ff1376b179c037b9..3d692bcf915ed66629fd7d6fd21ae6ece0f53c6a 100644 (file)
@@ -501,13 +501,16 @@ SDNode *AMDGPUDAGToDAGISel::glueCopyToM0(SDNode *N, SDValue Val) const {
 
   // Write max value to m0 before each load operation
 
-  SDValue M0 = Lowering.copyToM0(*CurDAG, CurDAG->getEntryNode(), SDLoc(N),
+  assert(N->getOperand(0).getValueType() == MVT::Other && "Expected chain");
+
+  SDValue M0 = Lowering.copyToM0(*CurDAG, N->getOperand(0), SDLoc(N),
                                  Val);
 
   SDValue Glue = M0.getValue(1);
 
   SmallVector <SDValue, 8> Ops;
-  for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
+  Ops.push_back(M0); // Replace the chain.
+  for (unsigned i = 1, e = N->getNumOperands(); i != e; ++i)
     Ops.push_back(N->getOperand(i));
 
   Ops.push_back(Glue);