similar to: [LLVMdev] about AnalysisUsage

Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] about AnalysisUsage"

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
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 30
0
[LLVMdev] about AnalysisUsage
On Fri, 29 Apr 2005, Sameer D. Sahasrabuddhe wrote: > 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 >
2005 Apr 28
2
[LLVMdev] inserting blocks into a Function
Recently wrote a pass that inserts a preheader for a loop that doesn't have one. When I tried to run it, I ran into a problem that became obvious in hindsight - the PHINodes need to be updated in places where the incoming control-edge has changed. Is there anything else that can be affected when a block is inserted into the CFG? Also, planning to write a helper function which will take care
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>();
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 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);
2005 Apr 29
1
[LLVMdev] inserting blocks into a Function
On Thu, Apr 28, 2005 at 11:22:26PM -0500, Chris Lattner wrote: > BasicBlock *SplitBlockPredecessors(BasicBlock *BB, const char *Suffix, > const std::vector<BasicBlock*> &Preds); > > Basically, given a BB with multiple predecessors, it inserts (and returns) > a new block, moving the predecessors in Preds to the new block and leaving
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 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 { >>>
2009 May 11
2
[LLVMdev] Pass Manager hangs with CallGraph and LoopSimplify
Hello, I have discovered a situation in which the pass manager will infinite loop. The minimal test case is below this message. The required structure of these passes is; Before requires CallGraph After requires LoopSimplify and Before I can observe this through opt: opt -load ./libBug.so -after input.bc -o output.bc I built my copy of llvm from svn revision 68820 using gcc 4.1.2 Any
2005 Nov 12
2
[LLVMdev] building LLVM 1.6 on Debian unstable ...
Hi, Tried to build the 1.6 release on Debian unstable, but ran into link problems for some utils ... Copying the messages when building llc, the same error occurs for lli, llvm-db and some of the examples. Is this a problem with the compiler version? LLVMSelectionDAG.o itself builds correctly. make[2]: Entering directory `/home/sameerds/data/llvm-1.6/tools/llc' llvm[2]: Linking Debug
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
2005 Apr 30
1
[LLVMdev] about AnalysisUsage
On Fri, Apr 29, 2005 at 10:32:18PM -0500, Chris Lattner wrote: > We could definitely expose the pass class itself, but there are no > implementation details or any other state that is useful. Yeah ... this, and Transforms/Scalar.h answer my original original question about why a lot of passes are present as a single CPP. The whole LLVM code generally abhors including class definitions
2009 May 11
0
[LLVMdev] Pass Manager hangs with CallGraph and LoopSimplify
See http://llvm.org/docs/GettingStarted.html#brokengcc and then try building with something OTHER than GCC 4.1.2 . ----- Original Message ---- > From: Nick Johnson <npjohnso at cs.princeton.edu> > To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> > Sent: Monday, May 11, 2009 3:01:12 PM > Subject: [LLVMdev] Pass Manager hangs with CallGraph and LoopSimplify >
2005 Apr 02
2
[LLVMdev] newbie question - selecting the write kind of pass
I want to create a simple map from a Value to the instruction that defines it. Such a map is present inside SchedGraph, but I need it in a much simpler context. If I got it right, I create a new AnalysisGroup, and write a pass that implements it. What kind of pass should I derive it from? The mapping only makes sense within a function, so FunctionPass seems to be the right choice ... is that
2005 Apr 29
0
[LLVMdev] inserting blocks into a Function
On Thu, 28 Apr 2005, Sameer D. Sahasrabuddhe wrote: > Recently wrote a pass that inserts a preheader for a loop that doesn't > have one. When I tried to run it, I ran into a problem that became > obvious in hindsight - the PHINodes need to be updated in places where > the incoming control-edge has changed. Is there anything else that can > be affected when a block is inserted
2005 Nov 15
4
[LLVMdev] doxygen docs
Hi, The docs available on illuvium.com are different from the one's present in the doxygen tarball on the same page ... can the tarball be generated from the same docs as the browseable version? I considered crawling the illuvium.com site, but it would be better to simply have a tarball available. I tried generating the docs myself ... doxygen simply refuses to create pages for classes
2005 Apr 03
2
[LLVMdev] newbie question - selecting the write kind of pass
On Sat, Apr 02, 2005 at 11:35:30AM -0600, Chris Lattner wrote: > On Sat, 2 Apr 2005, Sameer D. Sahasrabuddhe wrote: > > I want to create a simple map from a Value to the instruction that > > defines it. Such a map is present inside SchedGraph, but I need it in > > a much simpler context. > > Is this in the context of the code generator? No ... I am just trying to feel