Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Function Pass Manager"
2012 Apr 12
0
[LLVMdev] Function Pass Manager
Hi again,
I come back to this issue with an example. It's a pass which does
nothing but throw the 'Unable to schedule' error.
namespace {
struct MyPass : public FunctionPass {
static char ID; // Pass identification, replacement for typeid
MyPass() : FunctionPass(ID) {
initializeMyPassPass(*PassRegistry::getPassRegistry());
}
virtual void
2012 Jun 05
2
[LLVMdev] Function Pass Manager
On 4/12/12 3:32 AM, Ivan Llopard wrote:
> Hi again,
>
> I come back to this issue with an example. It's a pass which does
> nothing but throw the 'Unable to schedule' error.
>
> namespace {
> struct MyPass : public FunctionPass {
> static char ID; // Pass identification, replacement for typeid
> MyPass() : FunctionPass(ID) {
>
2012 Jun 05
2
[LLVMdev] Function Pass Manager
On 6/5/12 10:39 AM, Ralf Karrenberg wrote:
> Hi John,
>
> On 6/5/12 4:31 PM, John Criswell wrote:
>> On 4/12/12 3:32 AM, Ivan Llopard wrote:
>>> Hi again,
>>>
>>> I come back to this issue with an example. It's a pass which does
>>> nothing but throw the 'Unable to schedule' error.
>>>
>>> namespace {
>>>
2012 Aug 06
3
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
Hello,
I wrote my own pass which needs to do some loop unrolling.
I can perform loop unrolling via opt:
opt -mem2reg -loops -loop-simplify -loop-rotate -lcssa -loop-unroll
-unroll-count=50 mytest.bc -o mytest.bc
This command works perfectly.
However, what I really want is to produce the **same behavior** but
from my own pass (i.e., I don't want to use opt). I wrote a Module
pass which
2012 Jun 05
0
[LLVMdev] Function Pass Manager
Hi John,
On 6/5/12 4:31 PM, John Criswell wrote:
> On 4/12/12 3:32 AM, Ivan Llopard wrote:
>> Hi again,
>>
>> I come back to this issue with an example. It's a pass which does
>> nothing but throw the 'Unable to schedule' error.
>>
>> namespace {
>> struct MyPass : public FunctionPass {
>> static char ID; // Pass
2013 Apr 03
1
[LLVMdev] YSU_Student
Hello,
I wrote my own pass which needs to do some loop unrolling.
I can perform loop unrolling via opt:
opt -mem2reg -loops -loop-simplify -loop-rotate -lcssa -loop-unroll
-unroll-count=50 mytest.bc -o mytest.bc
This command works perfectly.
However, what I really want is to produce the **same behavior** but
from my own pass (i.e., I don't want to use opt). I wrote a Module
pass which
2012 Aug 06
0
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
On Aug 6, 2012, at 6:04 AM, Jorge Navas <navas at comp.nus.edu.sg> wrote:
>
> Hello,
>
> I wrote my own pass which needs to do some loop unrolling.
>
> I can perform loop unrolling via opt:
>
> opt -mem2reg -loops -loop-simplify -loop-rotate -lcssa -loop-unroll
> -unroll-count=50 mytest.bc -o mytest.bc
>
> This command works perfectly.
>
>
2011 Aug 22
1
[LLVMdev] Infinite loop when adding a new analysis pass
I am trying to add an analysis pass as a FunctionPass, and let LICM
(LoopPass) depends upon it. So in LICM.cpp, I have the following:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
AU.addRequiredID(LoopSimplifyID);
AU.addRequired<AliasAnalysis>();
2011 Dec 14
2
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
I'm attempting to add some support for hoisting/sinking of memory-using
intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
LICM, but when I modify getAnalysisUsge to include this :
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
2012 Jul 13
4
[LLVMdev] adding new data types to llvm
Hello .
I would like to add new custom data type to llvm C parser, I use LLVM/Clang version 3.1.
Adding new type instructions from llvm.org site are out of date (http://llvm.org/docs/ExtendingLLVM.html#type).
Could you please provide me with guidance?
Thanks in advance,
Edvard
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2008 Jul 12
3
[LLVMdev] Little bug in LoopInfo after Rotate?
Hello, I have two for loops (one inside the other), that after indvars,
looprotate, etc. (the important here is the loop rotate), is similar to this
(I've stripped the real operations):
define i32 @f() nounwind {
entry:
br label %bb1
bb1: ; preds = %bb3, %bb1, %entry
%i.0.reg2mem.0.ph = phi i32 [ 0, %entry ], [ %i.0.reg2mem.0.ph, %bb1 ],
[ %indvar.next9, %bb3 ] ;
2008 Jul 12
0
[LLVMdev] Little bug in LoopInfo after Rotate?
On Sat, Jul 12, 2008 at 3:45 PM, Julio <julio.martin.hidalgo at gmail.com> wrote:
> I would need to operate in the two loops in rotated form. It can be
> considered a bug or I have to introduce manually the header (or modify
> myself the ConsiderForLoop to my particular problem)?
Try adding "AU.addRequiredID(LoopSimplifyID);AU.addPreservedID(LoopSimplifyID);"
to your
2012 Jul 23
0
[LLVMdev] llvm::LoopPass
Hello .
I'm trying to implement LoopPass.
Here is simple code :
class LoopParser: public llvm::LoopPass
{
public:
static char ID;
public:
virtual void getAnalysisUsage(llvm::AnalysisUsage &AU) const
{
AU.addRequiredID(llvm::LoopSimplifyID);
AU.addPreservedID(llvm::LoopSimplifyID);
AU.addRequired<llvm::LoopInfo>();
}
2012 Jul 23
1
[LLVMdev] llvm::LoopPass
Hi Edvard, _ZTIN4llvm8LoopPassE is "typeinfo for llvm::LoopPass". LLVM is
built without typeinfo, so you will need to build your pass with -fno-rtti.
Ciao, Duncan.
> I'm trying to implement LoopPass.
> Here is simple code :
>
> class LoopParser: public llvm::LoopPass
> {
> public:
> static char ID;
>
> public:
> virtual
2010 Nov 17
0
[LLVMdev] L->isLoopInvariant giving wrong results?
i am getting seg fault on functions like I->eraseFromParent also.
I'm assuming that the problem comes when i change the loop structure.
On Thu, Nov 18, 2010 at 4:05 AM, Sreeraj a <writetosrj at gmail.com> wrote:
> The funny thing is that i am manually able to hoist the Loop invariant
> instruction to the basicBlock terminator, by editing the human readable form
> and then
2010 Nov 17
2
[LLVMdev] L->isLoopInvariant giving wrong results?
The funny thing is that i am manually able to hoist the Loop invariant
instruction to the basicBlock terminator, by editing the human readable form
and then using llvm-as to convert it into bytecode.
On Thu, Nov 18, 2010 at 4:01 AM, Chris Lattner <clattner at apple.com> wrote:
>
> On Nov 17, 2010, at 1:38 PM, Sreeraj a wrote:
>
> > Thanks Chris,
> >
> > I was
2005 Apr 29
2
[LLVMdev] about AnalysisUsage
Just noticed that quite a few passes like LoopSimplify are implemented
in a single .cpp file ... this makes it impossible to specify
LoopSimplify using the "addRequired" method. Was there any particular
reason to do it this way? I wouldn't mind doing the splitting myself,
though I am not using the CVS versions right now.
Also, it would be nice to have support for some sort of a
2011 Dec 14
0
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
On Dec 14, 2011, at 7:09 AM, David Gardner wrote:
> I'm attempting to add some support for hoisting/sinking of memory-using
> intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
> LICM, but when I modify getAnalysisUsge to include this :
>
> virtual void getAnalysisUsage(AnalysisUsage &AU) const {
> AU.setPreservesCFG();
>
2005 Apr 29
2
[LLVMdev] about AnalysisUsage
On Fri, Apr 29, 2005 at 08:10:17AM -0500, Chris Lattner wrote:
> AU.addRequiredID(LoopSimplifyID);
>
> "LoopSimplifyID" is a marker that is used to identify the pass, which is
> exported from the .cpp file.
I'll have to declare a PassInfo* called LoopSimplifyID inside
namespace llvm, in order for that to compile correctly, right? I was
wondering why not simply
2005 Apr 29
0
[LLVMdev] about AnalysisUsage
On Fri, 29 Apr 2005, Sameer D. Sahasrabuddhe wrote:
> Just noticed that quite a few passes like LoopSimplify are implemented
> in a single .cpp file ... this makes it impossible to specify
> LoopSimplify using the "addRequired" method. Was there any particular
> reason to do it this way? I wouldn't mind doing the splitting myself,
> though I am not using the CVS