summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJingyue Wu <jingyue@google.com>2015-06-30 18:59:19 +0000
committerJingyue Wu <jingyue@google.com>2015-06-30 18:59:19 +0000
commit9fe08c4bb38372457bdd07870d396ed985e74f56 (patch)
treeb55bc6e1d67e799679018d12dba3958f4bf2427a /llvm/lib
parent324c03fe83579868460e43c7dd066b660120ac32 (diff)
downloadbcm5719-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.cpp5
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)
OpenPOWER on IntegriCloud