summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2017-07-21 19:31:44 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2017-07-21 19:31:44 +0000
commitf014d7cbdeb9fbdc25987bc0ba6e52a7f6438c54 (patch)
treef7f5abb594129d061d22f58db67a43c01e5685d9
parentf87fa889fe485ef6c712946cb78a5b8948cd10d6 (diff)
downloadbcm5719-llvm-f014d7cbdeb9fbdc25987bc0ba6e52a7f6438c54.tar.gz
bcm5719-llvm-f014d7cbdeb9fbdc25987bc0ba6e52a7f6438c54.zip
AMDGPU: Preserve undef flag in eliminateFrameIndex
Fixes verifier errors in some call tests. Not sure why we haven't run into this before. Test split into separate patch for once call support is committed. llvm-svn: 308774
-rw-r--r--llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
index d9a5ce338bf..bb5e252e1ba 100644
--- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -472,17 +472,16 @@ static bool buildMUBUFOffsetLoadStore(const SIInstrInfo *TII,
if (LoadStoreOp == -1)
return false;
- unsigned Reg = TII->getNamedOperand(*MI, AMDGPU::OpName::vdata)->getReg();
-
+ const MachineOperand *Reg = TII->getNamedOperand(*MI, AMDGPU::OpName::vdata);
BuildMI(*MBB, MI, DL, TII->get(LoadStoreOp))
- .addReg(Reg, getDefRegState(!IsStore))
- .add(*TII->getNamedOperand(*MI, AMDGPU::OpName::srsrc))
- .add(*TII->getNamedOperand(*MI, AMDGPU::OpName::soffset))
- .addImm(Offset)
- .addImm(0) // glc
- .addImm(0) // slc
- .addImm(0) // tfe
- .setMemRefs(MI->memoperands_begin(), MI->memoperands_end());
+ .add(*Reg)
+ .add(*TII->getNamedOperand(*MI, AMDGPU::OpName::srsrc))
+ .add(*TII->getNamedOperand(*MI, AMDGPU::OpName::soffset))
+ .addImm(Offset)
+ .addImm(0) // glc
+ .addImm(0) // slc
+ .addImm(0) // tfe
+ .setMemRefs(MI->memoperands_begin(), MI->memoperands_end());
return true;
}
OpenPOWER on IntegriCloud