Displaying 20 results from an estimated 8000 matches similar to: "[LLVMdev] PassManager Woes"
2014 Apr 18
2
[LLVMdev] PassManager Woes
"Daniel Stewart" <stewartd at codeaurora.org> writes:
> I'm no expert on the PassManager, but I happen to be going through it
> fairly carefully right now. You didn't state which passes were Module
> Passes and which were Function Passes (or other types).
Sorry, I did mean to include that. They are all FunctionPasses.
> One thing I have noticed is that
2010 Apr 01
2
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
On Mar 31, 2010, at 3:13 PM, Owen Anderson wrote:
> Some analyses, like Andersen's AA, do all their computation in their
> runOnFunction(). Therefore, anything they depended on can be
> destroyed after the runOnFunction() returns.
What about AA itself? Would addRequired<AliasAnalysis> keep
AliasAnalysis alive (but allow AliasAnalysis's dependencies to die)?
>
2010 Apr 01
0
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
On Fri Apr 02 00:37:03 +0200 2010, Trevor Harmon wrote:
> On Mar 31, 2010, at 3:13 PM, Owen Anderson wrote:
> > Others, like MemoryDependenceAnalysis, are "lazy." MDA
> > specifically does NOT compute results in its runOnFunction(),
> > instead computing results on-demand when a user queries it. Because
> > MDA depends on AA, we must ensure that, as long as
2010 Mar 31
2
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
Hi,
I'm a bit confused about the distinction between addRequired and
addRequiredTransitive in AnalysisUsage. From PassAnalysisSupport.h:
"REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE
(must be available throughout the lifetime of the pass)."
The part that's confusing me is "must be available when the pass
runs". I don't see how
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>();
2006 Oct 21
1
[LLVMdev] addRequired vs addRequiredTransitive
I am having a hard time figuring out the difference between addRequired
and addRequiredTransitive. Could someone please clarify the difference?
Let's say I have a function pass P1 that relies on a function pass P2.
P1 computes some sort of analysis on a function F and P2 uses that
analysis when it processes F. Does that mean that I should use
addRequiredTransitive?
Thanks,
Ryan
2010 Jul 22
3
[LLVMdev] Controlling the order of a FunctionPass
On Jul 22, 2010, at 2:05 PM, John Criswell wrote:
> If you write your pass as a ModulePass, then you can iterate over the
> functions in any order that you want.
I had considered that, but my FunctionPass depends on other passes
processing the functions first:
void MyPass::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<UnifyFunctionExitNodes>();
2010 Mar 31
0
[LLVMdev] AnalysisUsage: addRequired vs. addRequiredTransitive
On Mar 31, 2010, at 2:53 PM, Trevor Harmon wrote:
> I'm a bit confused about the distinction between addRequired and
> addRequiredTransitive in AnalysisUsage. From PassAnalysisSupport.h:
>
> "REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE
> (must be available throughout the lifetime of the pass)."
>
> The part that's confusing me
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
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 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);
2010 Jul 23
0
[LLVMdev] Controlling the order of a FunctionPass
Trevor Harmon wrote:
> On Jul 22, 2010, at 2:05 PM, John Criswell wrote:
>
>
>> If you write your pass as a ModulePass, then you can iterate over the
>> functions in any order that you want.
>>
>
> I had considered that, but my FunctionPass depends on other passes
> processing the functions first:
>
Two things to consider:
1) The PassManager
2006 May 03
1
[LLVMdev] Patch for transform dependencies
Hi,
A number of transforms are actually independent, so here's a partial fix. I
updated the
dependencies in a cluster of transforms: LowerSwitch, Mem2Reg, LowerSelect,
LowerAllocations, UnifyFunctionExitNodes.
The patch has been tested, but not extensively. PassManager doesn't
complain, and
the result of a test pass that requires all these (except for
LowerAllocations) together
works
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 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
2011 Nov 10
3
[LLVMdev] Problem getting LoopInfo inside non-LoopPass
LLVMers,
I am doing a CallGraphPass but would like to get the LoopInfo of the
functions inside this pass, is this possible? Currently I have a function
inside the CallGraph struct:
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
AU.addPreserved<LoopInfo>();
}
And later inside the pass I am calling:
LoopInfo &LI =
2015 Jul 29
1
[LLVMdev] Loop Dependence Analysis(getDistance())
Hi,
I am trying to use the DependenceAnalysis pass to get the Distance vector
for the innermost loop. I am in LLVM learing process. I have used the
following code inside my original code to get the distance vector. It is
not giving any syntax error but it is has some logical but and giving
segmentation fault.
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
2007 Jul 11
3
[LLVMdev] Pluggable Register Coalescers
On Jul 11, 2007, at 11:39 AM, David Greene wrote:
> On Wednesday 11 July 2007 12:41, Tanya M. Lattner wrote:
>
>> I think the coalescer should be flexible enough to be run
>> independent of
>> the register allocator. For example, you may want to expose the
>> copies
>> induced by transforming out of SSA to the scheduler. If the
>> scheduler is
2018 Jan 29
0
Polly Dependency Analysis in MyPass
How do you compile the code? Within the Polly subdirectory using CMake?
How do you run your pass. Using "opt -mypass inputfile.ll"?
Michael
2018-01-28 9:30 GMT-06:00 hameeza ahmed via llvm-dev <llvm-dev at lists.llvm.org>:
> Hello,
>
> I need to analyze dependencies in my llvm ir by using polly. i created a new
> pass called mypass there i added polly dependency
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>();