summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp12
-rw-r--r--llvm/test/CodeGen/X86/label-heapallocsite.ll13
2 files changed, 13 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
index 137a8be9284..e09f2e760f5 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+++ b/llvm/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/llvm/test/CodeGen/X86/label-heapallocsite.ll b/llvm/test/CodeGen/X86/label-heapallocsite.ll
index ab9e4840810..31813d416b2 100644
--- a/llvm/test/CodeGen/X86/label-heapallocsite.ll
+++ b/llvm/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" }
OpenPOWER on IntegriCloud