From 5a86dbcf303681d3b10de496fbacb41dec933e6a Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 14 Jun 2019 13:33:36 +0000 Subject: AMDGPU: Fix input chain when gluing copies to m0 I don't think this was causing any observable issues, but was making reading the DAG dump confusing. llvm-svn: 363389 --- llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp') diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index 60bf9537185..3d692bcf915 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -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 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); -- cgit v1.2.3