search for: eceguo

Displaying 5 results from an estimated 5 matches for "eceguo".

2015 Oct 05
2
Adding mem2reg pass to pass manager
Hi, I want to add "mem2reg" pass similar to this: PassManager PM; PM.add(new LoopInfo()); PM.add(new Mem2Reg()); // What's the class name for this pass I couldn't find the name of corresponding class and header file of mem2reg pass except "mem2reg.cpp". So how can I add mem2reg pass into my pass manager? Thanks, Riyad -------------- next part -------------- An
2015 Dec 01
2
LICM doesn't work for IntrReadMem intrinsic function
Thanks for your reply, escha, Yes, -loop-rorate makes it work. Regards, Xiangyang 2015-12-01 12:48 GMT-05:00 <escha at apple.com>: > > > On Dec 1, 2015, at 9:30 AM, Xiangyang Guo via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Hi, All, > > > > Suppose I define one memory read only intrinsic function "foo" in >
2015 Dec 01
3
LICM doesn't work for IntrReadMem intrinsic function
On 1 December 2015 at 12:33, Xiangyang Guo via llvm-dev <llvm-dev at lists.llvm.org> wrote: > if I have the following IR, LICM doesn't work again, even if I use > '-loop-rotate' firstly. In this IR, the return value of intrinsic function > "foo" is used by another function "func2" as parameter. However, for the > intrinsic function
2015 Sep 20
2
simplifycfg not happening?
...#39;re right, it can indeed. Is there a reason -O3 doesn't do this? I had been expecting -O3 to perform full optimization. The first block still remains in any case. Is the first block needed for some purpose I'm not taking into account? On Sun, Sep 20, 2015 at 5:27 AM, Xiangyang Guo <eceguo at gmail.com> wrote: > Hi, > > if you use opt -simplifycfg, the third BB can be eliminated. > > 2015-09-20 0:03 GMT-04:00 Russell Wallace via llvm-dev < > llvm-dev at lists.llvm.org>: > >> The following function compiles with -O3 into the following IR. >>...
2015 Sep 20
2
simplifycfg not happening?
The following function compiles with -O3 into the following IR. http://llvm.org/docs/Passes.html#simplifycfg-simplify-the-cfg says - Eliminates a basic block that only contains an unconditional branch. but the first and third blocks in the compiled function only contain an unconditional branch; I would have expected them to be eliminated. What am I missing? double f(double *a) { for (int i