[llvm] r255063 - Revert "[CGP] Check that we have an insert point before moving llvm.dbg.value around"

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 8 14:33:24 PST 2015


Author: rnk
Date: Tue Dec  8 16:33:23 2015
New Revision: 255063

URL: http://llvm.org/viewvc/llvm-project?rev=255063&view=rev
Log:
Revert "[CGP] Check that we have an insert point before moving llvm.dbg.value around"

This reverts commit r255055.

Breakage has been reported.

Modified:
    llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
    llvm/trunk/test/Transforms/CodeGenPrepare/catchpad-phi-cast.ll

Modified: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=255063&r1=255062&r2=255063&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (original)
+++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp Tue Dec  8 16:33:23 2015
@@ -5251,16 +5251,12 @@ bool CodeGenPrepare::placeDbgValues(Func
 
       Instruction *VI = dyn_cast_or_null<Instruction>(DVI->getValue());
       if (VI && VI != PrevNonDbgInst && !VI->isTerminator()) {
-        BasicBlock::iterator IP;
-        if (isa<PHINode>(VI))
-          IP = VI->getParent()->getFirstInsertionPt();
-        else
-          IP = ++VI->getIterator();
-        if (IP == VI->getParent()->end())
-          continue;
         DEBUG(dbgs() << "Moving Debug Value before :\n" << *DVI << ' ' << *VI);
         DVI->removeFromParent();
-        VI->getParent()->getInstList().insert(IP, DVI);
+        if (isa<PHINode>(VI))
+          DVI->insertBefore(&*VI->getParent()->getFirstInsertionPt());
+        else
+          DVI->insertAfter(VI);
         MadeChange = true;
         ++NumDbgValueMoved;
       }

Modified: llvm/trunk/test/Transforms/CodeGenPrepare/catchpad-phi-cast.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/CodeGenPrepare/catchpad-phi-cast.ll?rev=255063&r1=255062&r2=255063&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/CodeGenPrepare/catchpad-phi-cast.ll (original)
+++ llvm/trunk/test/Transforms/CodeGenPrepare/catchpad-phi-cast.ll Tue Dec  8 16:33:23 2015
@@ -10,7 +10,6 @@ declare i32 @__CxxFrameHandler3(...)
 declare void @f()
 
 declare void @g(i8*)
-declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #2
 
 ; CodeGenPrepare will want to sink these bitcasts, but it selects the catchpad
 ; blocks as the place to which the bitcast should be sunk.  Since catchpads
@@ -58,59 +57,3 @@ catchend1:
 catchend2:
   catchendpad unwind to caller
 }
-
-; CodeGenPrepare will want to hoist these llvm.dbg.value calls to the phi, but
-; there is no insertion point in a catchpad block.
-
-; CHECK-LABEL: @test_dbg_value(
-define void @test_dbg_value() personality i32 (...)* @__CxxFrameHandler3 {
-entry:
-  %a = alloca i8
-  %b = alloca i8
-  invoke void @f() to label %next unwind label %catch.dispatch
-next:
-  invoke void @f() to label %ret unwind label %catch.dispatch
-ret:
-  ret void
-
-catch.dispatch:
-  %p = phi i8* [%a, %entry], [%b, %next]
-  %cp1 = catchpad [] to label %catch unwind label %catchend
-
-catch:
-  tail call void @llvm.dbg.value(metadata i8* %p, i64 0, metadata !11, metadata !13), !dbg !14
-  invoke void @g(i8* %p) to label %catchret unwind label %catchend
-catchret:
-  catchret %cp1 to label %ret
-
-; CHECK: catch.dispatch:
-; CHECK-NEXT: phi i8
-; CHECK-NEXT: catchpad
-; CHECK-NOT: llvm.dbg.value
-
-; CHECK: catch:
-; CHECK-NEXT: call void @llvm.dbg.value
-
-catchend:
-  catchendpad unwind to caller
-}
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!7, !8, !9}
-!llvm.ident = !{!10}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (trunk 254906) (llvm/trunk 254917)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: null, subprograms: !3)
-!1 = !DIFile(filename: "t.c", directory: "D:\5Csrc\5Cllvm\5Cbuild")
-!3 = !{!4}
-!4 = distinct !DISubprogram(name: "test_dbg_value", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, variables: null)
-!5 = !DISubroutineType(types: !6)
-!6 = !{null}
-!7 = !{i32 2, !"Dwarf Version", i32 4}
-!8 = !{i32 2, !"Debug Info Version", i32 3}
-!9 = !{i32 1, !"PIC Level", i32 2}
-!10 = !{!"clang version 3.8.0 (trunk 254906) (llvm/trunk 254917)"}
-!11 = !DILocalVariable(name: "p", scope: !4, file: !1, line: 2, type: !12)
-!12 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
-!13 = !DIExpression()
-!14 = !DILocation(line: 2, column: 8, scope: !4)
-!15 = !DILocation(line: 3, column: 1, scope: !4)




More information about the llvm-commits mailing list