summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2014-04-11 17:49:47 +0000
committerAdrian Prantl <aprantl@apple.com>2014-04-11 17:49:47 +0000
commit3bdcb52dd15639468f1b597b17c2a5addc0f8cb7 (patch)
tree318e532963d4a28c83499b74b1d395b7b9467826
parent9ec3cf2c8a22b7690ea2a18aabb980506313c9b4 (diff)
downloadbcm5719-llvm-3bdcb52dd15639468f1b597b17c2a5addc0f8cb7.tar.gz
bcm5719-llvm-3bdcb52dd15639468f1b597b17c2a5addc0f8cb7.zip
Debug info: Store the DIVariable in DebugLocEntry also for constants,
so DwarfDebug::emitDebugLocEntry can emit them with the correct signedness. rdar://problem/15928306 llvm-svn: 206042
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h12
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp8
-rw-r--r--llvm/test/DebugInfo/X86/dbg-const.ll2
-rw-r--r--llvm/test/DebugInfo/X86/dbg-value-const-byref.ll8
-rw-r--r--llvm/test/DebugInfo/X86/fission-ranges.ll2
5 files changed, 17 insertions, 15 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h b/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
index 470453fbe26..7ca9443594b 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
@@ -76,20 +76,20 @@ public:
EntryKind = E_Location;
}
DebugLocEntry(const MCSymbol *B, const MCSymbol *E, int64_t i,
- const DwarfCompileUnit *U)
- : Begin(B), End(E), Variable(0), Unit(U) {
+ const MDNode *V, const DwarfCompileUnit *U)
+ : Begin(B), End(E), Variable(V), Unit(U) {
Constants.Int = i;
EntryKind = E_Integer;
}
DebugLocEntry(const MCSymbol *B, const MCSymbol *E, const ConstantFP *FPtr,
- const DwarfCompileUnit *U)
- : Begin(B), End(E), Variable(0), Unit(U) {
+ const MDNode *V, const DwarfCompileUnit *U)
+ : Begin(B), End(E), Variable(V), Unit(U) {
Constants.CFP = FPtr;
EntryKind = E_ConstantFP;
}
DebugLocEntry(const MCSymbol *B, const MCSymbol *E, const ConstantInt *IPtr,
- const DwarfCompileUnit *U)
- : Begin(B), End(E), Variable(0), Unit(U) {
+ const MDNode *V, const DwarfCompileUnit *U)
+ : Begin(B), End(E), Variable(V), Unit(U) {
Constants.CIP = IPtr;
EntryKind = E_ConstantInt;
}
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index fde3604e04f..83b340f67ae 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -1212,11 +1212,13 @@ static DebugLocEntry getDebugLocEntry(AsmPrinter *Asm,
return DebugLocEntry(FLabel, SLabel, MLoc, Var, Unit);
}
if (MI->getOperand(0).isImm())
- return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getImm(), Unit);
+ return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getImm(), Var, Unit);
if (MI->getOperand(0).isFPImm())
- return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getFPImm(), Unit);
+ return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getFPImm(),
+ Var, Unit);
if (MI->getOperand(0).isCImm())
- return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getCImm(), Unit);
+ return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getCImm(),
+ Var, Unit);
llvm_unreachable("Unexpected 3 operand DBG_VALUE instruction!");
}
diff --git a/llvm/test/DebugInfo/X86/dbg-const.ll b/llvm/test/DebugInfo/X86/dbg-const.ll
index 12dc154c051..300c1eeb977 100644
--- a/llvm/test/DebugInfo/X86/dbg-const.ll
+++ b/llvm/test/DebugInfo/X86/dbg-const.ll
@@ -13,7 +13,7 @@
target triple = "x86_64-apple-darwin10.0.0"
-;CHECK: ## DW_OP_constu
+;CHECK: ## DW_OP_consts
;CHECK-NEXT: .byte 42
define i32 @foobar() nounwind readonly noinline ssp {
entry:
diff --git a/llvm/test/DebugInfo/X86/dbg-value-const-byref.ll b/llvm/test/DebugInfo/X86/dbg-value-const-byref.ll
index 23dead3f859..2f808786a8c 100644
--- a/llvm/test/DebugInfo/X86/dbg-value-const-byref.ll
+++ b/llvm/test/DebugInfo/X86/dbg-value-const-byref.ll
@@ -25,14 +25,14 @@
; CHECK: DW_AT_location [DW_FORM_data4] ([[LOC:.*]])
; CHECK: .debug_loc contents:
; CHECK: [[LOC]]:
-; constu 0x00000003
+; consts 0x00000003
; CHECK: Beginning address offset: 0x0000000000000{{.*}}
; CHECK: Ending address offset: [[C1:.*]]
-; CHECK: Location description: 10 03
-; constu 0x00000007
+; CHECK: Location description: 11 03
+; consts 0x00000007
; CHECK: Beginning address offset: [[C1]]
; CHECK: Ending address offset: [[C2:.*]]
-; CHECK: Location description: 10 07
+; CHECK: Location description: 11 07
; rax, piece 0x00000004
; CHECK: Beginning address offset: [[C2]]
; CHECK: Ending address offset: [[R1:.*]]
diff --git a/llvm/test/DebugInfo/X86/fission-ranges.ll b/llvm/test/DebugInfo/X86/fission-ranges.ll
index 416e7cb2a2f..057039c3c5c 100644
--- a/llvm/test/DebugInfo/X86/fission-ranges.ll
+++ b/llvm/test/DebugInfo/X86/fission-ranges.ll
@@ -26,7 +26,7 @@
; CHECK: [[A]]: Beginning address index: 2
; CHECK-NEXT: Length: 199
-; CHECK-NEXT: Location description: 10 00
+; CHECK-NEXT: Location description: 11 00
; CHECK-NEXT: {{^$}}
; CHECK-NEXT: Beginning address index: 3
; CHECK-NEXT: Length: 23
OpenPOWER on IntegriCloud