]> granicus.if.org Git - llvm/commitdiff
Fix to r367374 "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG"
authorAmy Huang <akhuang@google.com>
Wed, 31 Jul 2019 21:03:38 +0000 (21:03 +0000)
committerAmy Huang <akhuang@google.com>
Wed, 31 Jul 2019 21:03:38 +0000 (21:03 +0000)
after windows buildbot failure.

Added a check that the MachineInstr exists and is a call before trying
to add symbols around it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367483 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
test/CodeGen/X86/label-heapallocsite.ll

index 137a8be92841037e43052fbebf79fa358c45b361..e09f2e760f555489f3c0d3b72bf0889ae2826e36 100644 (file)
@@ -910,8 +910,10 @@ EmitSchedule(MachineBasicBlock::iterator &InsertPos) {
       if (HasDbg)
         ProcessSourceNode(N, DAG, Emitter, VRBaseMap, Orders, Seen, NewInsn);
 
-      if (MDNode* MD = DAG->getHeapAllocSite(N))
-        MF.addCodeViewHeapAllocSite(NewInsn, MD);
+      if (MDNode *MD = DAG->getHeapAllocSite(N)) {
+        if (NewInsn && NewInsn->isCall())
+          MF.addCodeViewHeapAllocSite(NewInsn, MD);
+      }
 
       GluedNodes.pop_back();
     }
@@ -921,8 +923,10 @@ EmitSchedule(MachineBasicBlock::iterator &InsertPos) {
     if (HasDbg)
       ProcessSourceNode(SU->getNode(), DAG, Emitter, VRBaseMap, Orders, Seen,
                         NewInsn);
-    if (MDNode* MD = DAG->getHeapAllocSite(SU->getNode()))
-      MF.addCodeViewHeapAllocSite(NewInsn, MD);
+    if (MDNode *MD = DAG->getHeapAllocSite(SU->getNode())) {
+      if (NewInsn && NewInsn->isCall())
+        MF.addCodeViewHeapAllocSite(NewInsn, MD);
+    }
   }
 
   // Insert all the dbg_values which have not already been inserted in source
index ab9e48408108b0199bc482a2cad73213e3d8cdbf..31813d416b262d8f73bc4620e740064eb8da31bd 100644 (file)
@@ -88,10 +88,10 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #2
 ; CHECK: callq alloc_foo
 ; DAG:   .Lheapallocsite5:
 ; FAST:  .Lheapallocsite7:
-; DAG:   .Lheapallocsite8:
+; DAG:   .Lheapallocsite6:
 ; FAST:  .Lheapallocsite4:
 ; CHECK: callq alloc_foo
-; DAG:   .Lheapallocsite9:
+; DAG:   .Lheapallocsite7:
 ; FAST:  .Lheapallocsite5:
 
 ; CHECK-LABEL: .short  4423                    # Record kind: S_GPROC32_ID
@@ -113,12 +113,9 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #2
 ; CHECK-NEXT:  .short .Lheapallocsite5-.Lheapallocsite4
 ; CHECK-NEXT:  .long 4099
 ; CHECK:       .short  4446                    # Record kind: S_HEAPALLOCSITE
-; FAST-NEXT:  .secrel32 .Lheapallocsite6
-; FAST-NEXT:  .secidx .Lheapallocsite6
-; FAST-NEXT:  .short .Lheapallocsite7-.Lheapallocsite6
-; DAG-NEXT:  .secrel32 .Lheapallocsite8
-; DAG-NEXT:  .secidx .Lheapallocsite8
-; DAG-NEXT:  .short .Lheapallocsite9-.Lheapallocsite8
+; CHECK-NEXT:  .secrel32 .Lheapallocsite6
+; CHECK-NEXT:  .secidx .Lheapallocsite6
+; CHECK-NEXT:  .short .Lheapallocsite7-.Lheapallocsite6
 ; CHECK-NEXT:  .long 4099
 
 attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }