[llvm] r206042 - Debug info: Store the DIVariable in DebugLocEntry also for constants,
Eric Christopher
echristo at gmail.com
Fri Apr 11 15:18:24 PDT 2014
Cool, thanks.
-eric
On Fri, Apr 11, 2014 at 10:49 AM, Adrian Prantl <aprantl at apple.com> wrote:
> Author: adrian
> Date: Fri Apr 11 12:49:47 2014
> New Revision: 206042
>
> URL: http://llvm.org/viewvc/llvm-project?rev=206042&view=rev
> Log:
> Debug info: Store the DIVariable in DebugLocEntry also for constants,
> so DwarfDebug::emitDebugLocEntry can emit them with the correct signedness.
>
> rdar://problem/15928306
>
> Modified:
> llvm/trunk/lib/CodeGen/AsmPrinter/DebugLocEntry.h
> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> llvm/trunk/test/DebugInfo/X86/dbg-const.ll
> llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.ll
> llvm/trunk/test/DebugInfo/X86/fission-ranges.ll
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DebugLocEntry.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DebugLocEntry.h?rev=206042&r1=206041&r2=206042&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DebugLocEntry.h (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DebugLocEntry.h Fri Apr 11 12:49:47 2014
> @@ -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;
> }
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=206042&r1=206041&r2=206042&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Apr 11 12:49:47 2014
> @@ -1212,11 +1212,13 @@ static DebugLocEntry getDebugLocEntry(As
> 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!");
> }
>
> Modified: llvm/trunk/test/DebugInfo/X86/dbg-const.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dbg-const.ll?rev=206042&r1=206041&r2=206042&view=diff
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/X86/dbg-const.ll (original)
> +++ llvm/trunk/test/DebugInfo/X86/dbg-const.ll Fri Apr 11 12:49:47 2014
> @@ -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:
>
> Modified: llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.ll?rev=206042&r1=206041&r2=206042&view=diff
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.ll (original)
> +++ llvm/trunk/test/DebugInfo/X86/dbg-value-const-byref.ll Fri Apr 11 12:49:47 2014
> @@ -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:.*]]
>
> Modified: llvm/trunk/test/DebugInfo/X86/fission-ranges.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/fission-ranges.ll?rev=206042&r1=206041&r2=206042&view=diff
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/X86/fission-ranges.ll (original)
> +++ llvm/trunk/test/DebugInfo/X86/fission-ranges.ll Fri Apr 11 12:49:47 2014
> @@ -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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list