search for: analysispass

Displaying 20 results from an estimated 27 matches for "analysispass".

2013 May 24
1
[LLVMdev] Infinite loop parsing opt command line options
Hi all, I am experiencing a problem managing the command line option of a set of passes in my LLVM project. Attached you find a toy project the triggers the problem. The project is made up of two passes: "AnalysisPass" and "TransformPass". "TransformPass" requires "AnalysisPass" and they both share a common integer command line option called "-command-line-option" According to: http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-January/037722.html the proper way of shar...
2011 Aug 01
2
[LLVMdev] implicit Pass Type dependencies between Analysis Pass and Transformation Pass
...Stuck Function Pass Loop Pass Stuck Module Pass Loop Pass Stuck ... The "stuck" situation happens when calling AU.addRequired<AnalysisPass>() inside the OptimizationPass's getAnalysisUsage() function. The opt tool seems to run into an infinite loop (on trivial testcases, which should finish in a flash of a second). Seems the Pass type between Analysis Pass and Optimization Pass has to match. I wonder if this is documented s...
2013 Oct 08
0
[LLVMdev] LLVM Pass usable by all types of Passes
...ure that passes required by /// P are run before P is run. Update analysis info maintained by /// the manager. Remove dead passes. This is a recursive function. void PMTopLevelManager::schedulePass(Pass *P) { .... else if (P->getPotentialPassManagerType () > AnalysisPass->getPotentialPassManagerType()) { */// INFINITE LOOP HERE. maybe because checkAnalysis is set to true for some reasons not very clear based on the comments. * printf("Analysis Pass Name is %s\n", AnalysisPass->getPassName()); // Schedule analysis pass that is ma...
2009 Aug 20
2
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
Hi, I do have a FunctionPass that does change the code. This FunctionPass requires another FunctionPass which performs all the necessary analyses. This AnalysisPass again requires MemoryDependenceAnalysis. The problem is, that I would like MemoryDependenceAnalysis to run on the unaltered module. I do not want to have dependencies to changed code. What is the cleanest way to do this? Sounds easy, but I do not get it right :D Thanks Marc
2019 Jul 22
2
Run llvm pass from standalone project
...llowing error: /llvm/include/llvm/IR/PassManager.h:778: typename PassT::Result& llvm::AnalysisManager<IRUnitT, ExtraArgTs>::getResult(IRUnitT&, ExtraArgTs ...) [with PassT = llvm::AAManager; IRUnitT = llvm::Module; ExtraArgTs = {}; typename PassT::Result = llvm::AAResults]: Assertion `AnalysisPasses.count(PassT::ID()) && "This analysis pass was not registered prior to being queried"' failed. Aborted (core dumped) Please point me towards some documentation that explains how to run llvm passes from a standalone project. Thanks, Akash Banerjee -------------- next part --...
2009 Aug 20
0
[LLVMdev] How to force MemoryDependenceAnalysis to run on original module
On Aug 20, 2009, at 11:44 AM, Marc Brünink wrote: > Hi, > > I do have a FunctionPass that does change the code. This FunctionPass > requires another FunctionPass which performs all the necessary > analyses. > This AnalysisPass again requires MemoryDependenceAnalysis. > > The problem is, that I would like MemoryDependenceAnalysis to run on > the > unaltered module. I do not want to have dependencies to changed code. > What is the cleanest way to do this? > Sounds easy, but I do not get it right :D Hi...
2018 Jan 24
0
Memory leaks in LegacyPassManager depending on order of addRequired passes
...erPass>();<br> AU.addRequired<DominatorTreeWrapperPass>();<br> }</div> <div><br>and changing it to add BlockFrequencyInfoWrapperPass after DominatorTreeWrapperPass fixes the issue.<br>The leak comes from line 1032 of lib/IR/LegacyPassManager.cpp: Pass *AnalysisPass = PI->createPass();<br>AnalysisPass is then passed to addLowerLevelRequiredPass, which does not make use of it. It seems that I’m exposing some problem with the LegacyPassManager.<br><br>Thanks,</div> <div>Zaara</div></div></div><BR>
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
...s>();* * * * }* Then, i built it, it is OK. I went on to run it. It failed with a segment error. By debugging, it is found that in the following code from *PMTopLevelManager::schedulePass(Pass *P)*, *const PassInfo *PI = PassRegistry::getPassRegistry()->getPassInfo(*I);* * AnalysisPass = PI->createPass();* When this manager search for the CallGraph reqiured by myPass ( in the failing trace , Pass *P is myPass), the return value of *PassRegistry::getPassInfo(const void *TI)* is NULL, thus the following dereference of PI is invalid. I am using llvm 2.9, which is download from h...
2014 Jun 13
2
[LLVMdev] Passes calling
...a bit crazy for example that when a pass currently invalidates an Analysis, the analysis remains valid until the pass completes and control returns to the PassManager. It would be nice to have a better framework for Analysis invalidation some day. To be clear, there’s nothing wrong with having an AnalysisPass that can be explicitly scheduled. That’s useful for testing passes that only use an analysis “if available”. However, an Analysis should not need to be a pass in order to register its result with the PassManager. -Andy -------------- next part -------------- An HTML attachment was scrubbed... URL...
2011 May 03
4
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...Pass()); PM.run(M); } Program received signal SIGSEGV, Segmentation fault. #0 0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage (this=0x86f798c, P=0x892bfc0) at <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 #1 0x08322cfb in llvm::PMTopLevelManager::setLastUser (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 #2 0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at <...>/llvm-2.9/lib/VMCore/PassManager.cpp:1608 #3 0x08324cef in llvm::PMDataManager::add (this=...
2018 Aug 21
2
Function optimization pass
...llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::Function>; IRUnitT = llvm::Function; ExtraArgTs = {}; typename PassT::Result = llvm::InnerAnalysisManagerProxy<llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::Function>::Result]: Assertion `AnalysisPasses.count(PassT::ID()) && "This analysis pass was not registered prior to being queried"' failed. I'm new to llvm optimization and I still don't know which analysis managers should be created and populated in this case. Many thanks for any help. Le mar. 21 août 2018 à...
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...rogram received signal SIGSEGV, Segmentation fault. > > #0 0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage > (this=0x86f798c, P=0x892bfc0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 > #1 0x08322cfb in llvm::PMTopLevelManager::setLastUser > (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 > #2 0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass > (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:1608 > #3 0x08324cef in llvm::...
2011 May 04
2
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...IGSEGV, Segmentation fault. >> >> #0  0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage >> (this=0x86f798c, P=0x892bfc0) at >> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 >> #1  0x08322cfb in llvm::PMTopLevelManager::setLastUser >> (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at >> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 >> #2  0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass >> (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at >> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:1608 >> #3  ...
2011 May 30
0
[LLVMdev] (no subject)
...>();* * AU.addRequired<StaticProfilePass>();* * * * }* Then, i built it, it is OK. I went on to run it. It failed with a segment error. By debugging, it is found that in the following code, *const PassInfo *PI = PassRegistry::getPassRegistry()->getPassInfo(*I);* * AnalysisPass = PI->createPass();* The return value of PassRegistry::getPassInfo(const void *TI) is NULL, thus the following dereference of PI is invalid. I am using llvm 2.9, which is download from http://llvm.org/releases/. Could anybody help me? -- Best regards, Li Qingan -------------- next part ---...
2012 Mar 21
0
[LLVMdev] llvm seg fault when specifying addRequiredTransitive in module pass
...dTransitive<LoopInfo>(); When I run my pass using opt, it crashes with segmentation fault with callstack: #0 0x0877aebd in llvm::PMTopLevelManager::findAnalysisUsage (this=0x8c10934, P=0xb15b988) at PassManager.cpp:573 #1 0x0877aa9b in llvm::PMTopLevelManager::setLastUser (this=0x8c10934, AnalysisPasses=..., P=0xb121c18) at PassManager.cpp:512 #2 0x0877ee0f in llvm::MPPassManager::addLowerLevelRequiredPass (this=0x8c102d8, P=0xb121c18, RequiredPass=0xb15b988) at PassManager.cpp:162\ 5 #3 0x0877ca44 in llvm::PMDataManager::add (this=0x8c102e8, P=0xb121c18, ProcessAnalysis=true) at PassManager.c...
2012 Mar 02
0
[LLVMdev] Interactions between module and loop passes
Hi Pablo, > I have a code with three passes (one loop pass and two module passes) > and my own pass manager. If I schedule the loop pass between the others, > my code segfaults. when developing with LLVM you should configure with --enable-assertions. That way you should get an assert failure with a helpful message rather than a crash. Is there any explanation why loop passes cannot
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...lt. >>> >>> #0 0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage >>> (this=0x86f798c, P=0x892bfc0) at >>> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 >>> #1 0x08322cfb in llvm::PMTopLevelManager::setLastUser >>> (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at >>> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 >>> #2 0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass >>> (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at >>> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:16...
2011 May 04
1
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...;>>> #0  0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage >>>> (this=0x86f798c, P=0x892bfc0) at >>>> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 >>>> #1  0x08322cfb in llvm::PMTopLevelManager::setLastUser >>>> (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at >>>> <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 >>>> #2  0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass >>>> (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at >>>> <...>/llvm-2.9/lib/VMCore/Pa...
2012 Mar 02
2
[LLVMdev] Interactions between module and loop passes
Hi all, I have a code with three passes (one loop pass and two module passes) and my own pass manager. If I schedule the loop pass between the others, my code segfaults. Is there any explanation why loop passes cannot be scheduled between two module passes? Perhaps I misunderstood the behaviour of pass managers. I paste here my "usage" information: int main(...){ Module m = ...
2011 May 17
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
...rogram received signal SIGSEGV, Segmentation fault. > > #0 0x0832312f in llvm::PMTopLevelManager::findAnalysisUsage > (this=0x86f798c, P=0x892bfc0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:577 > #1 0x08322cfb in llvm::PMTopLevelManager::setLastUser > (this=0x86f798c, AnalysisPasses=..., P=0x892d2e0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:516 > #2 0x083275f5 in llvm::MPPassManager::addLowerLevelRequiredPass > (this=0x885cc60, P=0x892d2e0, RequiredPass=0x892bfc0) at > <...>/llvm-2.9/lib/VMCore/PassManager.cpp:1608 > #3 0x08324cef in llvm::...