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...