summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2018-02-16 01:15:20 +0000
committerVedant Kumar <vsk@apple.com>2018-02-16 01:15:20 +0000
commit616fdb00dfe09c889980ef6d42b98ee67b2694c4 (patch)
treeb68215e5ca4062711324f77b28834eb62dda6704
parent65b620be8a63c8dee5225562a43c6dfc827394a7 (diff)
downloadbcm5719-llvm-616fdb00dfe09c889980ef6d42b98ee67b2694c4.tar.gz
bcm5719-llvm-616fdb00dfe09c889980ef6d42b98ee67b2694c4.zip
[GVN] Partially revert debug info salvage change (r325063)
In r325063, we salvaged debug values from dying instructions in GVN::processBlock() and GVN::performScalarPRE(). The change in performScalarPRE(), while correct, is unhelpful. It introduced a call to salvageDebugInfo() which was immediately followed by a RAUW, meaning it prevented the RAUW from efficiently updating dbg.value intrinsics. This commit reverts the mistake and tightens up the affected test case. llvm-svn: 325308
-rw-r--r--llvm/lib/Transforms/Scalar/GVN.cpp1
-rw-r--r--llvm/test/Transforms/GVN/PRE/phi-translate-2.ll2
2 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp
index a9104408691..9c291bde547 100644
--- a/llvm/lib/Transforms/Scalar/GVN.cpp
+++ b/llvm/lib/Transforms/Scalar/GVN.cpp
@@ -2321,7 +2321,6 @@ bool GVN::performScalarPRE(Instruction *CurInst) {
VN.eraseTranslateCacheEntry(ValNo, *CurrentBlock);
addToLeaderTable(ValNo, Phi, CurrentBlock);
Phi->setDebugLoc(CurInst->getDebugLoc());
- salvageDebugInfo(*CurInst);
CurInst->replaceAllUsesWith(Phi);
if (MD && Phi->getType()->isPtrOrPtrVectorTy())
MD->invalidateCachedPointerInfo(Phi);
diff --git a/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll b/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
index c941e04ff69..2edc2c10b27 100644
--- a/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
+++ b/llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
@@ -143,7 +143,7 @@ critedge.loopexit:
; CHECK: %[[PREPHI:.*]] = phi i64 [ %sub.ptr.sub, %if.else ], [ %[[SUB]], %if.then2 ], [ %sub.ptr.sub, %entry ]
; CHECK: %[[DIV:.*]] = ashr exact i64 %[[PREPHI]], 2
; CHECK: call void @llvm.dbg.value(metadata i32* %p.0, metadata [[var_p0:![0-9]+]], metadata !DIExpression())
-; CHECK: call void @llvm.dbg.value(metadata i32* %p.0, metadata [[var_sub_ptr:![0-9]+]], metadata !DIExpression())
+; CHECK: call void @llvm.dbg.value(metadata i64 %sub.ptr.rhs.cast5.pre-phi, metadata [[var_sub_ptr:![0-9]+]], metadata !DIExpression())
; CHECK: ret i64 %[[DIV]]
declare void @bar(...) local_unnamed_addr #1
OpenPOWER on IntegriCloud