[llvm-dev] debug info "ref" parameter

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 21 11:27:12 PST 2016


Could you provide the complete example (with all the necessary metadata to
reproduce)?

Possible LLVM has a special case for arguments, I'm not sure/don't recall
off hand, but can poke around at it & see if there's a reasonable logic to
it.

On Tue, Dec 20, 2016 at 10:43 PM Carlo Kok via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I want to emit a ref parameter (ie i32*) as if it was i32 in debug info,
> however when I emit it with llvm.debug.declare referring to the
> parameter register it shows the actual pointer value of the debug
> register, instead of the value it refers to. This works fine if the
> llvm.debug.declare points to a local alloca, how can this be and how can
> I make it work so both show the integer value directly?
>
> define void @test1(i32) #0 !dbg !5 {
> BasicBlock0:
>    %1 = alloca i32
>    store i32 %0, i32* %1
>    call void @llvm.dbg.declare(metadata i32* %1, metadata !20, metadata
> !22), !dbg !23
> // This one is fine
>    %2 = load i32, i32* %1, !dbg !24
>    %3 = add i32 %2, 1, !dbg !24
>    store i32 %3, i32* %1, !dbg !24
>    ret void, !dbg !25
> }
>
> define void @ms_t1a_issuedebugouttest.__Global4_MEH2n_o_i32(i32*) #0
> !dbg !9 {
> BasicBlock3:
>    call void @llvm.dbg.declare(metadata i32* %0, metadata !26, metadata
> !22), !dbg !28
>    %1 = load i32, i32* %0, !dbg !29
>    %2 = add i32 %1, 1, !dbg !29
>    store i32 %2, i32* %0, !dbg !29
>    ret void, !dbg !30
> }
>
> !22 = !DIExpression()
>
> !20 = !DILocalVariable(name: "i", scope: !21, file: !6, line: 11, type:
> !13)
> !26 = !DILocalVariable(name: "i", scope: !27, file: !6, line: 15, type:
> !13)
>
>
> !13 = !DIDerivedType(tag: DW_TAG_typedef, name: "Integer", scope: !2,
> file: !3, baseType: !14)
> !14 = !DIBasicType(name: "Integer", size: 32, align: 32, encoding:
> DW_ATE_signed)
>
> --
> Carlo Kok
> RemObjects Software
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161221/03154369/attachment-0001.html>


More information about the llvm-dev mailing list