[llvm] r325308 - [GVN] Partially revert debug info salvage change (r325063)

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 15 17:15:20 PST 2018


Author: vedantk
Date: Thu Feb 15 17:15:20 2018
New Revision: 325308

URL: http://llvm.org/viewvc/llvm-project?rev=325308&view=rev
Log:
[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.

Modified:
    llvm/trunk/lib/Transforms/Scalar/GVN.cpp
    llvm/trunk/test/Transforms/GVN/PRE/phi-translate-2.ll

Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=325308&r1=325307&r2=325308&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Thu Feb 15 17:15:20 2018
@@ -2321,7 +2321,6 @@ bool GVN::performScalarPRE(Instruction *
   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);

Modified: llvm/trunk/test/Transforms/GVN/PRE/phi-translate-2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/phi-translate-2.ll?rev=325308&r1=325307&r2=325308&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/GVN/PRE/phi-translate-2.ll (original)
+++ llvm/trunk/test/Transforms/GVN/PRE/phi-translate-2.ll Thu Feb 15 17:15:20 2018
@@ -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




More information about the llvm-commits mailing list