Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] YSU_Student"
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 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.
>
>
2012 Mar 23
3
[LLVMdev] Function Pass Manager
Hi,
I'm writing a function pass which is dynamically loaded by opt and I
need some analysis and passes to be run before my pass:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
AU.addPreserved<LoopInfo>();
AU.addRequiredID(LoopSimplifyID);
AU.addPreservedID(LoopSimplifyID);
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) {
>
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>();
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
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
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 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 {
>>>
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();
>
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 ] ;
2014 Sep 29
2
[LLVMdev] questions about getAnalysisUsage
Hi,
I notice that there are several different methods called inside
getAnalysisUsage(). The parameters of addRequiredID and addPreservedID
are passID. What is the difference between Required and Preserved? There
are also function named addRequired<PassName>() called. What is the
difference between addRequired<PassName>() and addRequiredID(PassID)?
Thanks a lot!
Best,
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:
2011 May 16
2
[LLVMdev] InstructionCombining.cpp inconsistency in whether it modifies the CFG?
InstCombine says in its getAnalysisUsage that it preserves the CFG,
but for the 4th argument in its INITIALIZE_PASS call, it says false,
which I believe corresponds to whether it preserves the CFG. Is this a
mistake, or is there deeper meaning here?
InstructionCombining.cpp:73-82
char InstCombiner::ID = 0;
INITIALIZE_PASS(InstCombiner, "instcombine",
"Combine
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
2011 May 16
0
[LLVMdev] InstructionCombining.cpp inconsistency in whether it modifies the CFG?
Hi Michael,
> InstCombine says in its getAnalysisUsage that it preserves the CFG,
> but for the 4th argument in its INITIALIZE_PASS call, it says false,
> which I believe corresponds to whether it preserves the CFG.
that argument should be set to true if the pass only looks at the CFG, i.e.
whatever it computes/does is only a function of the CFG, and doesn't otherwise
depend on what