<p dir="ltr"><br></p>
<p dir="ltr">Best Regards!<br>
Eric Lew</p>
<div class="cm_quote" style=" color: #787878">On 周三, 4月 22, 2015 at 12:11 下午, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:</div><br><div id="oldcontent" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><blockquote style=""><p dir="ltr">On Tue, Apr 21, 2015 at 8:34 PM, Eric Lu <eirc.lew@gmail.com> wrote:
<br>
> Hi, all
<br>
>
<br>
> I want to instrument load/store operations in LLVM IR. And I find the LLVM
<br>
> IR generated with flag -o3 is much more efficient than -o0, so I try to
<br>
> instrument on these optimized LLVM IR, but, some load operations are changed
<br>
> to Phi loads. Then, I try the -reg2mem flag to remove these phi nodes.
<br>
> The  problems are:
<br>
> 1) I use visitLoadInst to collect these load operations, and it seems I
<br>
> cannot reach these loads that are generated by reg2mem? What is the reason?
<br>

<br>
Clang doesn't generate optimized IR - so if your instrumentation is in
<br>
Clang's IRGen (clang/lib/CodeGen) it won't see these. Clang generates
<br>
the unoptimized IR (you can see it with -Xclang -disable-llvm-optzns)
<br>

<br></p><p dir="ltr"></p></blockquote><div id="ID_1429676675960">I do instrumentation in the opt of llvm. Does clang itself do some optimizations that speed up applications with -O3 compared to -O0? </div><blockquote class="" style=""><br>
> 2) Is there any way to compile with -O3 but not generate phi nodes ?
<br>

<br>
Not likely - without that it'd disable a lot of LLVM's optimization power.
<br>

<br>
- David
<br>

<br>
>
<br>
>
<br>
> --
<br>
> Best Regards!
<br>
> Eric Lew
<br>
>
<br>
> _______________________________________________
<br>
> LLVM Developers mailing list
<br>
> LLVMdev@cs.uiuc.edu         http://llvm.cs.uiuc.edu
<br>
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
<br>
>
<br>
<p></p>
</blockquote></div>