From: Amy Huang Date: Wed, 31 Jul 2019 21:03:38 +0000 (+0000) Subject: Fix to r367374 "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9d8cef981e5b7d1f67a3148ea3b1da7f8a972578;p=llvm Fix to r367374 "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG" 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 --- diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp index 137a8be9284..e09f2e760f5 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @@ -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 diff --git a/test/CodeGen/X86/label-heapallocsite.ll b/test/CodeGen/X86/label-heapallocsite.ll index ab9e4840810..31813d416b2 100644 --- a/test/CodeGen/X86/label-heapallocsite.ll +++ b/test/CodeGen/X86/label-heapallocsite.ll @@ -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" }