search for: createpass

Displaying 20 results from an estimated 30 matches for "createpass".

2010 Jul 23
1
[LLVMdev] "Cannot call createPass on PassInfo without default ctor!"
While trying to add a pass to the ARM back end I'm getting quite a lot of this assertion failure: Pass.cpp:255: llvm::Pass* llvm::PassInfo::createPass() const: Assertion `NormalCtor && "Cannot call createPass on PassInfo without default ctor!"' failed. A simple way to get it is to add two lines to ARMTargetMachine.cpp: #include "llvm/Transforms/Scalar.h" and PM.add(createSinkingPass()); in addInstSelector ju...
2009 Sep 03
0
[LLVMdev] Problem with generating Machine function analysis pass
...-------Required set ---------- Machine Function Analysis -------- end ---------- ---------- finding... Machine Function Analysis -------------------------------- Oh no no analysis pass test: /home/elhigu/stow_sources/llvm-2.6-svn/include/llvm/PassSupport.h:111: llvm::Pass* llvm::PassInfo::createPass() const: Assertion `NormalCtor && "Cannot call createPass on PassInfo without default ctor!"' failed. Aborted When I tried to compile the same file with llc Machine Function Analysis pass was created with out problems. Am I missing some pass registration initialisation or...
2014 Apr 30
2
[LLVMdev] What is HexagonTargetMachine::addPassesForOptimizations for?
...gt; wrote: >> This function is marked virtual but doesn't override anything, doesn't have >> any overrides, and has no in tree callers. Can it be removed? > > Given that it is dead, yes :-) > It used to be called from clang, from lib/CodeGen/BackendUtils.cpp, function CreatePasses. It doesn't seem to be the case anymore. I'm not familiar with that part of the code. +Matthew -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
2013 Dec 02
2
[LLVMdev] Segmentation fault when traverse call graph
...and then I want to traverse the call graph such as: CallGraph CG = this->getAnalysis<CallGraph>; for (CallGraph::const_iterator i = CG.begin(); i != CG.end(); ++i) { .... } However, I encountered a segmentation fault with the next core dump information. What should I do? llvm::PassInfo::createPass() const + 4 llvm::PMTopLevelManager::schedulePass(llvm::Pass*) llvm::PassManager::add(llvm::Pass*) ... -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131202/c8daa472/attachment.html>
2009 Nov 26
1
[LLVMdev] Problemo: createTailDuplicationPass
Good morning! After updating and recompiling my copy of the LLVM trunk I noticed that the line "_passManager.add(llvm::createTailDuplicationPass());" in my code fails with the following assertion: Assertion failed: NormalCtor && "Cannot call createPass on PassInfo without default ctor!", file D:\Workspace\llvmtrunk\include\llvm/PassSupport.h, line 111 This behavior was introduced in revision 89904: Both, lib/CodeGen/tailDuplication.cpp and lib/Transforms/TailDuplication.cpp export a function with the signature llvm::createTailDuplicationPas...
2011 Mar 11
1
[LLVMdev] Accessing an empty machine function before instruction selection?
.... Currently in my pass I request it via: void AMDILBarrierDetect::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<MachineFunctionAnalysis>(); FunctionPass::getAnalysisUsage(AU); } However, I am getting an assert: assert(NormalCtor && "Cannot call createPass on PassInfo without default ctor!"); First question, is this possible? If so, how do I get NormalCtor to not be NULL? Second question, if I want to pass information from before Instruction selection to after instruction selection, is this the preferred way? If not how? Thanks, Micah --------...
2013 Oct 01
0
[LLVMdev] RFH: passing options from clang down to opt
The option handling in clang in fairly different from opt. The comment about the mixed name was just a guess as to why you don't see the driver passing it down to -cc1. Once that is working, you will probably need to: * Patch ParseCodeGenArgs to record the option * Patch EmitAssemblyHelper::CreatePasses to set the option to enable the pass in the pass manager (assuming that is the effect you want). On 1 October 2013 15:48, Diego Novillo <dnovillo at google.com> wrote: > On Tue, Oct 1, 2013 at 3:42 PM, Rafael Espíndola > <rafael.espindola at gmail.com> wrote: >> You are...
2013 Oct 01
2
[LLVMdev] RFH: passing options from clang down to opt
...ing the handling of this option too far down. I moved it up and it's now being passed. Not sure what order needs to be kept in this function, however. > Once that is working, you will probably need to: > > * Patch ParseCodeGenArgs to record the option > * Patch EmitAssemblyHelper::CreatePasses to set the option to enable > the pass in the pass manager (assuming that is the effect you want). Thanks. That was my disconnect. I was confusing 'opt' with clang's backend. The attached patch does what I want. Does it look like it's in the right direction? Thanks. Di...
2014 Apr 30
2
[LLVMdev] What is HexagonTargetMachine::addPassesForOptimizations for?
...anything, >>>> doesn't have >>>> any overrides, and has no in tree callers. Can it be removed? >>> >>> Given that it is dead, yes :-) >>> >> >> It used to be called from clang, from lib/CodeGen/BackendUtils.cpp, >> function CreatePasses. It doesn't seem to be the case anymore. I'm >> not familiar with that part of the code. >> +Matthew >> >> -Krzysztof >> > > It is actually part of a patch that we do not intend to upstream. > Unfortunately this part of the patch slipped through....
2013 Oct 01
2
[LLVMdev] RFH: passing options from clang down to opt
On Tue, Oct 1, 2013 at 3:42 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote: > You are calling the option -auto-profile in some places and > -fauto-profile in others. Maybe it is just a typo? In opt, the option is named '-auto-profile' when I instantiate the pass: INITIALIZE_PASS(AutoProfile, "auto-profile", "Auto Profile loader", false,
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
...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 http://llvm.org/relea...
2013 Dec 03
0
[LLVMdev] Segmentation fault when traverse call graph
...all graph such as: > CallGraph CG = this->getAnalysis<CallGraph>; > for (CallGraph::const_iterator i = CG.begin(); i != CG.end(); ++i) { > .... > } > However, I encountered a segmentation fault with the next core dump > information. What should I do? > llvm::PassInfo::createPass() const + 4 > llvm::PMTopLevelManager::schedulePass(llvm::Pass*) > llvm::PassManager::add(llvm::Pass*) > ... > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiu...
2016 Jul 13
2
IPRA, interprocedural register allocation, question
Mehdi, I’m seeing lots of “upgrading” logic, If (UseIPRA) createPass(new DummyCGSCCPass); if (UseIPRA) addPass(createRegUsageInfoPropPass()); if (UseIPRA) addPass(createRegUsageInfoCollector()); ??? --Peter. From: mehdi.amini at apple.com [mailto:mehdi.amini at app...
2009 Nov 17
2
[LLVMdev] PassManager again...
...g that the ProfileInfoLoader analysis is not used anymore? I have tried to make the ProfileInfoLoader the default implementation (instead of "No ProfileInfo") but this gives an assertion while creating the passes: > llc:.../include/llvm/PassSupport.h:111: llvm::Pass* llvm::PassInfo::createPass() const: Assertion `NormalCtor && "Cannot call createPass on PassInfo without default ctor!"' failed. Can someone enlighten me please? Andi
2010 Oct 11
0
[LLVMdev] MAJOR API CHANGE: Pass initialization without static constructors
...9;ve thought of. Chris and I had a discussion about this offline, and he pointed out to me that we could make this API work if we had statically declared pass dependency information (that must be guaranteed to be a superset of the true dynamic dependencies). If we have that information, then the createPass() methods can be made to call the initializePass(), which can in turn recursively initialize its potential dependencies. I'm putting my current patch (implementing the old version of this proposal) on hold to evaluate the possibility of going this route instead. --Owen -------------- next par...
2011 May 30
0
[LLVMdev] (no subject)
...quired<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 -------------- An HTML...
2013 Oct 02
0
[LLVMdev] RFH: passing options from clang down to opt
...option too far down. I moved it up and it's now being passed. > Not sure what order needs to be kept in this function, however. > >> Once that is working, you will probably need to: >> >> * Patch ParseCodeGenArgs to record the option >> * Patch EmitAssemblyHelper::CreatePasses to set the option to enable >> the pass in the pass manager (assuming that is the effect you want). > > Thanks. That was my disconnect. I was confusing 'opt' with clang's backend. > > The attached patch does what I want. Does it look like it's in the > rig...
2014 Apr 30
2
[LLVMdev] What is HexagonTargetMachine::addPassesForOptimizations for?
This function is marked virtual but doesn't override anything, doesn't have any overrides, and has no in tree callers. Can it be removed? -- ~Craig -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140429/fd552b41/attachment.html>
2018 Jan 24
0
Memory leaks in LegacyPassManager depending on order of addRequired passes
...; 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>
2013 Sep 19
1
[LLVMdev] How do you add MachineBlockPlacement to a Function Pass Manager?
I'm trying to port llvm-lua so it's buildable with llvm trunk. A problem I'm running into is that it uses the older BlockPlacement pass. From searching around and reading llvm's commit, this pass has been replaced and superseded by Chandler's MachineBlockPlacement pass. What's unclear to me is how exactly do you add this pass to say a function pass manager? The current