<div dir="ltr">if you could simplify it down a bit, that might be helpful - not sure there's a lot to be gained - I imagine it is just a quirk of how we handle these things in the backend to make normal debug info work, but there might be some things to be done to help. </div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 21, 2016 at 2:31 PM Carlo Kok <<a href="mailto:ck@remobjects.com">ck@remobjects.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><a href="https://gist.github.com/carlokok/77010598f81e8167592e593ec6c715a1" class="gmail_msg" target="_blank">https://gist.github.com/carlokok/77010598f81e8167592e593ec6c715a1</a><br class="gmail_msg">
<br class="gmail_msg">
If needed I can strip it down more tomorrow, but only elements entry point and the two meh methods are used.</div><div class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On December 21, 2016 8:27:12 PM GMT+01:00, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="gmail_msg" target="_blank">dblaikie@gmail.com</a>> wrote:<blockquote class="gmail_quote gmail_msg" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr" class="gmail_msg">Could you provide the complete example (with all the necessary metadata to reproduce)?<br class="gmail_msg"><br class="gmail_msg">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.</div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Dec 20, 2016 at 10:43 PM Carlo Kok via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="gmail_msg" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I want to emit a ref parameter (ie i32*) as if it was i32 in debug info,<br class="gmail_msg">
however when I emit it with llvm.debug.declare referring to the<br class="gmail_msg">
parameter register it shows the actual pointer value of the debug<br class="gmail_msg">
register, instead of the value it refers to. This works fine if the<br class="gmail_msg">
llvm.debug.declare points to a local alloca, how can this be and how can<br class="gmail_msg">
I make it work so both show the integer value directly?<br class="gmail_msg">
<br class="gmail_msg">
define void @test1(i32) #0 !dbg !5 {<br class="gmail_msg">
BasicBlock0:<br class="gmail_msg">
   %1 = alloca i32<br class="gmail_msg">
   store i32 %0, i32* %1<br class="gmail_msg">
   call void @llvm.dbg.declare(metadata i32* %1, metadata !20, metadata<br class="gmail_msg">
!22), !dbg !23<br class="gmail_msg">
// This one is fine<br class="gmail_msg">
   %2 = load i32, i32* %1, !dbg !24<br class="gmail_msg">
   %3 = add i32 %2, 1, !dbg !24<br class="gmail_msg">
   store i32 %3, i32* %1, !dbg !24<br class="gmail_msg">
   ret void, !dbg !25<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
define void @ms_t1a_issuedebugouttest.__Global4_MEH2n_o_i32(i32*) #0<br class="gmail_msg">
!dbg !9 {<br class="gmail_msg">
BasicBlock3:<br class="gmail_msg">
   call void @llvm.dbg.declare(metadata i32* %0, metadata !26, metadata<br class="gmail_msg">
!22), !dbg !28<br class="gmail_msg">
   %1 = load i32, i32* %0, !dbg !29<br class="gmail_msg">
   %2 = add i32 %1, 1, !dbg !29<br class="gmail_msg">
   store i32 %2, i32* %0, !dbg !29<br class="gmail_msg">
   ret void, !dbg !30<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
!22 = !DIExpression()<br class="gmail_msg">
<br class="gmail_msg">
!20 = !DILocalVariable(name: "i", scope: !21, file: !6, line: 11, type: !13)<br class="gmail_msg">
!26 = !DILocalVariable(name: "i", scope: !27, file: !6, line: 15, type: !13)<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
!13 = !DIDerivedType(tag: DW_TAG_typedef, name: "Integer", scope: !2,<br class="gmail_msg">
file: !3, baseType: !14)<br class="gmail_msg">
!14 = !DIBasicType(name: "Integer", size: 32, align: 32, encoding:<br class="gmail_msg">
DW_ATE_signed)<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Carlo Kok<br class="gmail_msg">
RemObjects Software<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
LLVM Developers mailing list<br class="gmail_msg">
<a href="mailto:llvm-dev@lists.llvm.org" class="gmail_msg" target="_blank">llvm-dev@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="gmail_msg">
</blockquote></div>
</blockquote></div><br class="gmail_msg"></div><div class="gmail_msg">
-- <br class="gmail_msg">
Sent from my Android device with K-9 Mail. Please excuse my brevity.</div></blockquote></div>