<div dir="ltr">Hey, Daniel<div><br></div><div>  Is it better to instrument in the CodeGen phase ? I am now doing it in the opt phases, and it seems a little complex when instrument phi nodes, because I have to decide where the load operation should be if there are no phi nodes.</div><div><br></div><div>%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]<br></div><div><br></div><div>It may load 0 or %indvars.iv.next, I have to add checkLoad(addr, size) in different BBs for different incoming value.</div><div><br></div><div>I guess in CodeGen Phase, the code have been changed back to code with load/store already.</div><div><br></div><div>Are there examples to show me how to instrument in the CodeGen Phase? </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 22, 2015 at 1:23 PM, Daniel Berlin <span dir="ltr"><<a href="mailto:dberlin@dberlin.org" target="_blank">dberlin@dberlin.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">reg2mem does not eliminate phi nodes the way codegen does, it just<br>
converts ssa values to non-ssa values.<br>
<br>
It's not the same thing.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Tue, Apr 21, 2015 at 10:14 PM, Eric Lu <<a href="mailto:eirc.lew@gmail.com">eirc.lew@gmail.com</a>> wrote:<br>
> By the way. When I remove these phi nodes with -reg2mem, some new load<br>
> operations will be inserted, but when I try cache load operations with:<br>
> visitFunction<br>
> visitLoadInst<br>
> It seems we can't see these new load operations.<br>
><br>
> On Wed, Apr 22, 2015 at 1:10 PM, Eric Lu <<a href="mailto:eirc.lew@gmail.com">eirc.lew@gmail.com</a>> wrote:<br>
>><br>
>> Hi, Daniel<br>
>><br>
>> I want to profile load/store operations, in order to reduce the overhead<br>
>> of profiling, I try to instrument the optimized llvm ir, which has phi<br>
>> nodes.<br>
>><br>
>> BTW, when the value of some load/store operations may have multi-source,<br>
>> then the load will be translated into phi nodes, and all phi nodes are<br>
>> placed in the front of BB. Sometimes, the position is not where the load<br>
>> happens, is there any way to figure out where the load should be placed?( If<br>
>> the phi node translated back to load operations)<br>
>><br>
>> Best Regards!<br>
>> Eric Lew<br>
>><br>
>> On 周三, 4月 22, 2015 at 12:24 下午, Daniel Berlin <<a href="mailto:dberlin@dberlin.org">dberlin@dberlin.org</a>> wrote:<br>
>><br>
>> Hey Eric,<br>
>> phi nodes don't exist for real, so you can't.<br>
>> The are removed by PHI elimination as part of codegen.<br>
>><br>
>> What are you trying to achieve?<br>
>><br>
>><br>
>><br>
>><br>
>> On Tue, Apr 21, 2015 at 9:12 PM, Eric Lu <<a href="mailto:eirc.lew@gmail.com">eirc.lew@gmail.com</a>> wrote:<br>
>> > Hi, all<br>
>> ><br>
>> >    When compiling a program with -g -O0, and if we have a PC, then with<br>
>> > addr2line, we can get the line number of the instruction.<br>
>> ><br>
>> > My quesions are:  what is the result of Phi node instruction, can we get<br>
>> > the<br>
>> > similar results ?<br>
>> ><br>
>> > --<br>
>> > Best Regards!<br>
>> > Eric Lew<br>
>> ><br>
>> > _______________________________________________<br>
>> > LLVM Developers mailing list<br>
>> > <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>> ><br>
><br>
><br>
><br>
><br>
> --<br>
> Best Regards!<br>
> Eric Lew<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Best Regards!<br>Eric Lew</div>
</div>