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