search for: initialize_pass_depend

Displaying 20 results from an estimated 59 matches for "initialize_pass_depend".

2017 Oct 03
2
About LLVM Pass dependency
Hello I am working on pass which has dependency on multiple passes. Say D1,D2,D3 I used INITIALIZE_PASS_BEGIN INITIALIZE_PASS_DEPENDENCY(D1) INITIALIZE_PASS_DEPENDENCY(D2) INITIALIZE_PASS_DEPENDENCY(D3) INITIALIZE_PASS_END. While running it through opt tool it, I had to specify this D1,D2,D3 pass names to get this pass executed before my pass. Is there way, to let llvm pass manager to know execute all dependencies without havi...
2011 Aug 22
1
[LLVMdev] Infinite loop when adding a new analysis pass
...// Add this AU.addPreserved<AliasAnalysis>(); AU.addPreserved("scalar-evolution"); AU.addPreservedID(LoopSimplifyID); } char LICM::ID = 0; INITIALIZE_PASS_BEGIN(LICM, "licm", "Loop Invariant Code Motion", false, false) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_DEPENDENCY(LoopInfo) INITIALIZE_PASS_DEPENDENCY(LoopSimplify) INITIALIZE_PASS_DEPENDENCY(MyAnalysis) // add this dependency INITIALIZE_AG_DEPENDENCY(AliasAnalysis) INITIALIZE_PASS_END(LICM, "licm", "Loop Invariant Code Motion", fal...
2011 Dec 14
2
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
...AU.addPreserved("scalar-evolution"); AU.addPreservedID(LoopSimplifyID); AU.addRequired<TargetLibraryInfo>(); } ..add to the initialize pass list: char LICM::ID = 0; INITIALIZE_PASS_BEGIN(LICM, "licm", "Loop Invariant Code Motion", false, false) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_DEPENDENCY(LoopInfo) INITIALIZE_PASS_DEPENDENCY(LoopSimplify) INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfo) INITIALIZE_PASS_DEPENDENCY(MemoryDependenceAnalysis) // <--- added INITIALIZE_AG_DEPENDENCY(AliasAnalysis) INITIALIZE_PASS_END(LICM, "licm", &q...
2017 Oct 03
1
About LLVM Pass dependency
...); > } > > On Tue, Oct 3, 2017 at 2:00 AM, Mahesh Attarde via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hello >> I am working on pass which has dependency on multiple passes. Say >> D1,D2,D3 >> I used >> INITIALIZE_PASS_BEGIN >> INITIALIZE_PASS_DEPENDENCY(D1) >> INITIALIZE_PASS_DEPENDENCY(D2) >> INITIALIZE_PASS_DEPENDENCY(D3) >> INITIALIZE_PASS_END. >> >> While running it through opt tool it, I had to specify this D1,D2,D3 pass >> names >> to get this pass executed before my pass. >> Is there way,...
2011 Dec 14
0
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
...ot;); > AU.addPreservedID(LoopSimplifyID); > AU.addRequired<TargetLibraryInfo>(); > } > > ..add to the initialize pass list: > > char LICM::ID = 0; > INITIALIZE_PASS_BEGIN(LICM, "licm", "Loop Invariant Code Motion", false, false) > INITIALIZE_PASS_DEPENDENCY(DominatorTree) > INITIALIZE_PASS_DEPENDENCY(LoopInfo) > INITIALIZE_PASS_DEPENDENCY(LoopSimplify) > INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfo) > INITIALIZE_PASS_DEPENDENCY(MemoryDependenceAnalysis) // <--- added > INITIALIZE_AG_DEPENDENCY(AliasAnalysis) > INITIALIZE_PASS_...
2011 May 03
4
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...void Foo::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<LoopInfo>(); AU.addRequired<DominatorTree>(); } void Foo::print(std::ostream&, const Module*) const { } char Foo::ID = 0; INITIALIZE_PASS_BEGIN(Foo, "foo", "foo bar", true, true) INITIALIZE_PASS_DEPENDENCY(LoopInfo) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_END(Foo, "foo", "foo bar", true, true) Foo *createFooPass() { return new Foo(); } void runFooPass(Module &M) { PassManager PM; PM.add(createFooPass()); PM.run(M); } Program received s...
2017 Aug 01
1
Making an analysis availble during call lowering
> On Jul 31, 2017, at 21:47, Hal Finkel <hfinkel at anl.gov> wrote: > > > > Did you add INITIALIZE_PASS_DEPENDENCY somewhere? > > -Hal Yes, the selector is ultimately a target defined, normal MachineFunction pass you can add dependencies on. -Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170731/8f60d...
2017 Aug 01
2
Making an analysis availble during call lowering
...he legacy pass manager, are you planning to schedule the >>> analysis pass manually and then use getAnalysisIfAvailable? >>> >>> Thanks again, >>> Hal >>> >> >> I didn’t need to do anything special. addRequired/getAnalysis work. Did you add INITIALIZE_PASS_DEPENDENCY somewhere? -Hal >> >> -Matt > > ping -- Hal Finkel Lead, Compiler Technology and Programming Languages Leadership Computing Facility Argonne National Laboratory -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pip...
2012 Oct 30
1
[LLVMdev] Error when trying to chain two llvm transform passes
...: (PI && "Expected required passes to be initialized"), >> function schedulePass, file PassManager.cpp, line 597. >> >> >> I register the passes using RegisterPass function call. What else should >> I be doing? > Initializing them. Are you using INITIALIZE_PASS_DEPENDENCY, INITIALIZE_AG_DEPENDENCY, etc? > No. I am not sure how they work . I am trying to use the INITIALIZE_PASS macro. I get the following error error: definition or redeclaration of 'initializeMyPassNamePass' not in a namespace enclosing 'llvm' should i add the passname...
2015 Aug 21
2
Guidelines for pass initialization?
Does anyone know what the guidelines are supposed to be for properly initializing a pass? Looking around, we seem to have three styles of pass registration in use. INITIALIZE_PASS(...) INITIALIZE_PASS_BEGIN(...) INITIALIZE_PASS_DEPENDENCY(...) ... INITIALIZE_PASS_END(...) static RegisterPass<FooPass> X(...); (This is the one encouraged in the docs, but seemingly the least widely used in tree?) As far as I can tell, these often appear to work interchangeably. (At least for passes with only "well known" depende...
2011 May 04
1
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Your constructor is not calling initializeTestMPPass(), and you're using RegisterPass which I think was deprecated in favor of INITIALIZE_PASS. You can look at, for example, lib/Transforms/Scalar/IndVarSimplify.cpp for examples of how to initialize, e.g. having "INITIALIZE_PASS_DEPENDENCY(LoopInfo)" sandwiched between BEGIN and END. Note that you'll want a forward declaration of initializeTestMPPass(), as it won't have a declaration in include/llvm/InitializePasses.h. These are all the changes I think I had to make to port my passes to 2.9 from 2.8. On Wed, May 4,...
2011 Oct 13
2
[LLVMdev] pass utilizing MemoryDependenceAnalysis?
...uot;getAnalysis*() called on an analysis that was not " "'required' by pass!"), function getAnalysisID I do not know why. I noticed the DeadStoreElimination pass also uses this, but it does not use RegisterPass (like mine and the docs show). Instead it has lines like:        INITIALIZE_PASS_DEPENDENCY(MemoryDependenceAnalysis) This gives me:        error: C++ requires a type specifier for all declarations What is the correct way todo this?
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Hi Mikhail, As Brian noted, stuff like this works better in the new pass manager. Even in the old pass manager I thought it should work though. Did you initialize the pass, via `INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)`? Did you require it, via ` AU.addRequired<PostDominatorTreeWrapperPass>();`? Btw. May I ask what you are planning to do? Cheers, Johannes On 01/07, Brian Gesiak via llvm-dev wrote: > Hello! The new pass manager provides analysis proxies from one IR...
2011 May 04
2
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...equired<LoopInfo>(); >>      AU.addRequired<DominatorTree>(); >> } >> >> void Foo::print(std::ostream&, const Module*) const { } >> >> char Foo::ID = 0; >> INITIALIZE_PASS_BEGIN(Foo, "foo", "foo bar", true, true) >> INITIALIZE_PASS_DEPENDENCY(LoopInfo) >> INITIALIZE_PASS_DEPENDENCY(DominatorTree) >> INITIALIZE_PASS_END(Foo, "foo", "foo bar", true, true) >> >> Foo *createFooPass() { >>      return new Foo(); >> } >> >> void runFooPass(Module&M) >> { >&gt...
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...age(AnalysisUsage &AU) const { AU.addRequired<DominatorTree>(); } And changed the bottom of my pass too: char Hello::ID = 0; namespace llvm { void initializeHelloPass(llvm::PassRegistry&); } INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true) class StaticInitializer { public: StaticInitializer() { PassRegistry &Registry = *PassRegistry::getPassRegistry(); initializeHelloPass(Registry); } }; static StaticInitializer Ini...
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...examples the only way I found to require a dependecny is by doing something like this: char Hello::ID = 0; namespace llvm { void initializeHelloPass(llvm::PassRegistry&); } INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true) Unfortunately this gives me(when I try to run it). opt: Unknown command line argument '-hello'. If I instead using RegisterPass like in the guide the Pass is loaded fi...
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...mp;AU) const { > AU.addRequired<LoopInfo>(); > AU.addRequired<DominatorTree>(); > } > > void Foo::print(std::ostream&, const Module*) const { } > > char Foo::ID = 0; > INITIALIZE_PASS_BEGIN(Foo, "foo", "foo bar", true, true) > INITIALIZE_PASS_DEPENDENCY(LoopInfo) > INITIALIZE_PASS_DEPENDENCY(DominatorTree) > INITIALIZE_PASS_END(Foo, "foo", "foo bar", true, true) > > Foo *createFooPass() { > return new Foo(); > } > > void runFooPass(Module&M) > { > PassManager PM; > PM.add(...
2020 Oct 02
2
Pass dependency error
Hi all, I am getting the infamous error: Assertion `ResultPass && "getAnalysis*() called on an analysis that was not " "'required' by pass!"' but i really don't understand why. I have: voidInstrumentationPass::getAnalysisUsage(llvm::AnalysisUsage&AU) const{     AU.setPreservesAll();     AU.addRequired<DetectKernelsPass>();    
2015 May 20
3
[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses
...itch over to that, but this is going to be frustrating when I'll need call graph SCC information. Anyone has a better idea? I should note that I'm not using the INITIALIZE_PASS macros because I have no idea how they mesh with RegisterPass. I'm seeing that the passes that use these have INITIALIZE_PASS_DEPENDENCY macros and it makes me a little nervous, but the resulting function for my pass is seemingly never called. Félix > Le 2015-05-19 à 12:47:32, John Criswell <jtcriswel at gmail.com> a écrit : > > On 5/19/15 10:04 AM, Félix Cloutier wrote: >> Thanks John. >> >>...
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...t;> AU.addRequired<DominatorTree>(); >>> } >>> >>> void Foo::print(std::ostream&, const Module*) const { } >>> >>> char Foo::ID = 0; >>> INITIALIZE_PASS_BEGIN(Foo, "foo", "foo bar", true, true) >>> INITIALIZE_PASS_DEPENDENCY(LoopInfo) >>> INITIALIZE_PASS_DEPENDENCY(DominatorTree) >>> INITIALIZE_PASS_END(Foo, "foo", "foo bar", true, true) >>> >>> Foo *createFooPass() { >>> return new Foo(); >>> } >>> >>> void runFooPass...