diff options
| author | Jingyue Wu <jingyue@google.com> | 2015-06-30 18:59:19 +0000 |
|---|---|---|
| committer | Jingyue Wu <jingyue@google.com> | 2015-06-30 18:59:19 +0000 |
| commit | 9fe08c4bb38372457bdd07870d396ed985e74f56 (patch) | |
| tree | b55bc6e1d67e799679018d12dba3958f4bf2427a /llvm/lib | |
| parent | 324c03fe83579868460e43c7dd066b660120ac32 (diff) | |
| download | bcm5719-llvm-9fe08c4bb38372457bdd07870d396ed985e74f56.tar.gz bcm5719-llvm-9fe08c4bb38372457bdd07870d396ed985e74f56.zip | |
[NVPTX] Fix issue introduced in D10321
Summary:
Really check if %SP is not used in other places, instead of checking only exact
one non-dbg use.
Patched by Xuetian Weng.
Test Plan:
@foo4 in test/CodeGen/NVPTX/local-stack-frame.ll, create a case that
SP will appear twice.
Reviewers: jholewinski, jingyue
Reviewed By: jingyue
Subscribers: llvm-commits, sfantao, jholewinski
Differential Revision: http://reviews.llvm.org/D10844
llvm-svn: 241099
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp index 0b0cb87e5bc..cffcac0f19f 100644 --- a/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp @@ -47,20 +47,19 @@ void NVPTXFrameLowering::emitPrologue(MachineFunction &MF, // cvta.local %SP, %SPL; if (static_cast<const NVPTXTargetMachine &>(MF.getTarget()).is64Bit()) { // Check if %SP is actually used - if (MR.hasOneNonDBGUse(NVPTX::VRFrame)) { + if (!MR.use_empty(NVPTX::VRFrame)) { MI = BuildMI(MBB, MI, dl, MF.getSubtarget().getInstrInfo()->get( NVPTX::cvta_local_yes_64), NVPTX::VRFrame) .addReg(NVPTX::VRFrameLocal); } - BuildMI(MBB, MI, dl, MF.getSubtarget().getInstrInfo()->get(NVPTX::MOV_DEPOT_ADDR_64), NVPTX::VRFrameLocal) .addImm(MF.getFunctionNumber()); } else { // Check if %SP is actually used - if (MR.hasOneNonDBGUse(NVPTX::VRFrame)) { + if (!MR.use_empty(NVPTX::VRFrame)) { MI = BuildMI(MBB, MI, dl, MF.getSubtarget().getInstrInfo()->get( NVPTX::cvta_local_yes), NVPTX::VRFrame) |

