search for: getpassinfo

Displaying 20 results from an estimated 36 matches for "getpassinfo".

2009 Oct 21
0
[LLVMdev] Target data question
If the TargetData pass isn't registered in the global registry, getPassInfo() returns null. Now when you add a TargetData pass, it winds up in ImmutablePasses. Any search through ImmutablePasses assumes that getPassInfo() for every member returns something other than null. So findAnalysisPass for *any* analysis pass can crash the system if the TargetData pass is lurking...
2009 Oct 21
2
[LLVMdev] Target data question
On Tue, Oct 20, 2009 at 12:50 PM, Dan Gohman <gohman at apple.com> wrote: > > On Oct 20, 2009, at 10:13 AM, Kenneth Uildriks wrote: > >> On Tue, Oct 20, 2009 at 12:08 PM, Dan Gohman <gohman at apple.com> wrote: >>> Unfortunately, yes.  See PR4542.  Progress has been made recently >>> though -- the optimizers are now ready.  The main things left to do
2015 Feb 24
2
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
Hi, We use LLVM libraries to compile C++ code and noticed slow downs when multiple threads of a process were compiling at once. *perf *indicated that most of the CPU time was spent in a spin lock, which was being locked/unlocked from llvm::PassRegistry::getPassInfo(). We read the relevant LLVM code and found out that PassRegistry is a ManagedStatic and is shared among all threads in case of a multi-threaded setup. This sharing requires locking in PassRegistry's method, which becomes source of the contention. To get rid of the contention, we made a change...
2016 Mar 23
2
Help with pass manager
...if (!RunPass.empty()) { if (!StartAfter.empty() || !StopAfter.empty()) { errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; return 1; } const PassInfo *PI = PR->getPassInfo(RunPass); if (!PI) { errs() << "run-pass pass is not registered.\n"; return 1; } StopAfterID = StartBeforeID = PI->getTypeInfo(); } else { if (!StartAfter.empty()) { const Pass...
2009 Oct 21
2
[LLVMdev] Target data question
On Wed, Oct 21, 2009 at 10:59 AM, Kenneth Uildriks <kennethuil at gmail.com> wrote: > If the TargetData pass isn't registered in the global registry, > getPassInfo() returns null. > > Now when you add a TargetData pass, it winds up in ImmutablePasses. > Any search through ImmutablePasses assumes that getPassInfo() for > every member returns something other than null.  So findAnalysisPass > for *any* analysis pass can crash the system if the Tar...
2016 Mar 24
2
Help with pass manager
...if (!StartAfter.empty() || !StopAfter.empty()) { >> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >> return 1; >> } >> const PassInfo *PI = PR->getPassInfo(RunPass); >> if (!PI) { >> errs() << "run-pass pass is not registered.\n"; >> return 1; >> } >> StopAfterID = StartBeforeID = PI->getTypeInfo(); >> } else { >>...
2016 Mar 24
0
Help with pass manager
...ty()) { > if (!StartAfter.empty() || !StopAfter.empty()) { > errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; > return 1; > } > const PassInfo *PI = PR->getPassInfo(RunPass); > if (!PI) { > errs() << "run-pass pass is not registered.\n"; > return 1; > } > StopAfterID = StartBeforeID = PI->getTypeInfo(); > } else { > if (!StartAfter.em...
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
...equired<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 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...
2016 Mar 24
2
Help with pass manager
...|| !StopAfter.empty()) { >>>> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>> return 1; >>>> } >>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>> if (!PI) { >>>> errs() << "run-pass pass is not registered.\n"; >>>> return 1; >>>> } >>>> StopAfterID = StartBeforeID = PI->getTypeInfo(...
2016 Mar 24
0
Help with pass manager
...artAfter.empty() || !StopAfter.empty()) { >>> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>> return 1; >>> } >>> const PassInfo *PI = PR->getPassInfo(RunPass); >>> if (!PI) { >>> errs() << "run-pass pass is not registered.\n"; >>> return 1; >>> } >>> StopAfterID = StartBeforeID = PI->getTypeInfo(); >>>...
2016 Mar 24
2
Help with pass manager
...t;>>>> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>>> return 1; >>>>>> } >>>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>>> if (!PI) { >>>>>> errs() << "run-pass pass is not registered.\n"; >>>>>> return 1; >>>>>> } >>>>>> StopAfter...
2016 Mar 24
2
Help with pass manager
...t; "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>>>>>>> return 1; >>>>>>>>>> } >>>>>>>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>>>>>>> if (!PI) { >>>>>>>>>> errs() << "run-pass pass is not registered.\n"; >>>>>>>>>> return 1; >>>>>>>>>&...
2016 Mar 24
0
Help with pass manager
The problems happens because PMTopLevelManager::findAnalysisPassInfo(AnalysisID AID) returns nullptr in PMTopLevelManager::addImmutablePass(ImmutablePass *P). This because PassRegistry::getPassRegistry()->getPassInfo(AID) call in it returns nullptr as well. Should I probably register the pass I want to add with PassRegistry::registerPass(const PassInfo &PI, bool ShouldFree) ? I didn’t do it because llc doesn’t do it either. Here is the assertion: Assertion failed: (PassInf && "Expected all imm...
2016 Mar 30
1
Help with pass manager
...1 AM, Lorenzo Laneve via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > The problems happens because PMTopLevelManager::findAnalysisPassInfo(AnalysisID AID) returns nullptr in PMTopLevelManager::addImmutablePass(ImmutablePass *P). > This because PassRegistry::getPassRegistry()->getPassInfo(AID) call in it returns nullptr as well. > Should I probably register the pass I want to add with PassRegistry::registerPass(const PassInfo &PI, bool ShouldFree) ? > I didn’t do it because llc doesn’t do it either. > > Here is the assertion: > Assertion failed: (PassInf &&am...
2016 Mar 24
0
Help with pass manager
...mpty()) { >>>>> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>> return 1; >>>>> } >>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>> if (!PI) { >>>>> errs() << "run-pass pass is not registered.\n"; >>>>> return 1; >>>>> } >>>>> StopAfterID = StartBeforeID =...
2016 Mar 24
2
Help with pass manager
...errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>>>>> return 1; >>>>>>>> } >>>>>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>>>>> if (!PI) { >>>>>>>> errs() << "run-pass pass is not registered.\n"; >>>>>>>> return 1; >>>>>>>> } >>>&g...
2015 Feb 26
0
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
...com> wrote: > Hi, > > We use LLVM libraries to compile C++ code and noticed slow downs when > multiple threads of a process were compiling at once. *perf *indicated > that most of the CPU time was spent in a spin lock, which was being > locked/unlocked from llvm::PassRegistry::getPassInfo(). > > We read the relevant LLVM code and found out that PassRegistry is a > ManagedStatic and is shared among all threads in case of a multi-threaded > setup. This sharing requires locking in PassRegistry's method, which > becomes source of the contention. To get rid of the cont...
2016 Mar 24
0
Help with pass manager
...t;> errs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>>>> return 1; >>>>>>> } >>>>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>>>> if (!PI) { >>>>>>> errs() << "run-pass pass is not registered.\n"; >>>>>>> return 1; >>>>>>> } >>>>>>>...
2016 Mar 24
0
Help with pass manager
...rrs() << "start-after and/or stop-after passes are redundant when run-pass is specified.\n"; >>>>>>>>> return 1; >>>>>>>>> } >>>>>>>>> const PassInfo *PI = PR->getPassInfo(RunPass); >>>>>>>>> if (!PI) { >>>>>>>>> errs() << "run-pass pass is not registered.\n"; >>>>>>>>> return 1; >>>>>>>>>...
2009 Oct 21
0
[LLVMdev] Target data question
On Oct 21, 2009, at 9:31 AM, Kenneth Uildriks wrote: > On Wed, Oct 21, 2009 at 10:59 AM, Kenneth Uildriks <kennethuil at gmail.com> wrote: >> If the TargetData pass isn't registered in the global registry, >> getPassInfo() returns null. >> >> Now when you add a TargetData pass, it winds up in ImmutablePasses. >> Any search through ImmutablePasses assumes that getPassInfo() for >> every member returns something other than null. So findAnalysisPass >> for *any* analysis pass can crash...