[llvm-commits] [llvm] r160148 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfDebug.cpp test/DebugInfo/X86/pr13303.ll

Robinson, Paul Paul.Robinson at am.sony.com
Thu Jul 12 18:04:10 PDT 2012


Remember that what this patch does is make direct-object and assembler output the same.  If it breaks things more than it helps, then both are broken.

Saying that makes me realize there ought to be tests to verify that the two modes generate the same result. What my test does is verify the direct-object output does a certain thing. Which is okay, as far as it goes, but won't identify a problem if the assembler output changes.
Sigh...
--paulr
________________________________________
From: Eric Christopher [echristo at apple.com]
Sent: Thursday, July 12, 2012 4:48 PM
To: Robinson, Paul
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [llvm] r160148 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfDebug.cpp test/DebugInfo/X86/pr13303.ll

Hrm, so it is. :)

Actually this may cause gdb to have a couple of fits which is why I haven't closed the PR yet. It only wants is_stmt on things that are going to be good places to break...

At least I can commit it and look at tests after.

-eric

On Jul 12, 2012, at 4:36 PM, "Robinson, Paul" <Paul.Robinson at am.sony.com> wrote:

> Actually that's the _start_ of the prolog...
> Thanks!
> --paulr
>
> ________________________________________
> From: llvm-commits-bounces at cs.uiuc.edu [llvm-commits-bounces at cs.uiuc.edu] on behalf of Eric Christopher [echristo at apple.com]
> Sent: Thursday, July 12, 2012 4:30 PM
> To: llvm-commits at cs.uiuc.edu
> Subject: [llvm-commits] [llvm] r160148 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfDebug.cpp test/DebugInfo/X86/pr13303.ll
>
> Author: echristo
> Date: Thu Jul 12 18:30:25 2012
> New Revision: 160148
>
> URL: http://llvm.org/viewvc/llvm-project?rev=160148&view=rev
> Log:
> The end of the prologue should be marked with is_stmt.
> Fixes PR13303.
>
> Patch by Paul Robinson!
>
> Added:
>    llvm/trunk/test/DebugInfo/X86/pr13303.ll
> Modified:
>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=160148&r1=160147&r2=160148&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Thu Jul 12 18:30:25 2012
> @@ -1382,7 +1382,7 @@
>                                        MF->getFunction()->getContext());
>     recordSourceLine(FnStartDL.getLine(), FnStartDL.getCol(),
>                      FnStartDL.getScope(MF->getFunction()->getContext()),
> -                     0);
> +                     DWARF2_LINE_DEFAULT_IS_STMT ? DWARF2_FLAG_IS_STMT : 0);
>   }
> }
>
>
> Added: llvm/trunk/test/DebugInfo/X86/pr13303.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/pr13303.ll?rev=160148&view=auto
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/X86/pr13303.ll (added)
> +++ llvm/trunk/test/DebugInfo/X86/pr13303.ll Thu Jul 12 18:30:25 2012
> @@ -0,0 +1,28 @@
> +; RUN: llc %s -o %t -filetype=obj -mtriple=x86_64-unknown-linux-gnu
> +; RUN: llvm-dwarfdump %t | FileCheck %s
> +; PR13303
> +
> +; Check that the prologue ends with is_stmt here.
> +; CHECK: 0x0000000000000000 {{.*}} is_stmt
> +
> +define i32 @main() nounwind uwtable {
> +entry:
> +  %retval = alloca i32, align 4
> +  store i32 0, i32* %retval
> +  ret i32 0, !dbg !10
> +}
> +
> +!llvm.dbg.cu = !{!0}
> +
> +!0 = metadata !{i32 786449, i32 0, i32 12, metadata !"PR13303.c", metadata !"/home/probinson", metadata !"clang version 3.2 (trunk 160143)", i1 true, i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1} ; [ DW_TAG_compile_unit ] [/home/probinson/PR13303.c] [DW_LANG_C99]
> +!1 = metadata !{metadata !2}
> +!2 = metadata !{i32 0}
> +!3 = metadata !{metadata !4}
> +!4 = metadata !{metadata !5}
> +!5 = metadata !{i32 786478, i32 0, metadata !6, metadata !"main", metadata !"main", metadata !"", metadata !6, i32 1, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, i32 ()* @main, null, null, metadata !1, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [main]
> +!6 = metadata !{i32 786473, metadata !"PR13303.c", metadata !"/home/probinson", null} ; [ DW_TAG_file_type ]
> +!7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
> +!8 = metadata !{metadata !9}
> +!9 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
> +!10 = metadata !{i32 1, i32 14, metadata !11, null}
> +!11 = metadata !{i32 786443, metadata !5, i32 1, i32 12, metadata !6, i32 0} ; [ DW_TAG_lexical_block ] [/home/probinson/PR13303.c]
>
>
> _______________________________________________
> 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