Is it possible to dynamically add and remove passes once llc starts to run? Currently I have to add some machine function passes and only once they are running, I have them return right away because they are not relevant at that time. For example, mips16 does not use the delay slot optimizer but now I would need to add the pass all the time just in case someone specified that a particular function be compiled as mips32. It seems from the pass manager that you can add and subtract passes but I was unclear as to whether this was something you have to do before the pass manager starts to run passes. Tia. Reed
I think you will have to add the passes anyway before asking the pass manager object to run. In addition, you can specify some dependency, so that that non relevant pass will not have a chance to run. The PassManager should be able to figure that out given the runtime conditions. Chuck On 3/29/2013 3:38 PM, reed kotler wrote:> Is it possible to dynamically add and remove passes once llc starts to > run? > > Currently I have to add some machine function passes and only once > they are running, I have them return right away because they are not > relevant at that time. For example, mips16 does not use the delay slot > optimizer but now I would need to add the pass all the time just in > case someone specified that a particular function be compiled as mips32. > > It seems from the pass manager that you can add and subtract passes > but I was unclear as to whether this was something you have to do > before the pass manager starts to run passes. > > Tia. > > Reed > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
This is what I'm doing right now and the only issues that came up in internal review is that we have to create the pass object now for things that we are unlikely to need. On 03/29/2013 04:05 PM, Chuck Zhao wrote:> I think you will have to add the passes anyway before asking the pass > manager object to run. > In addition, you can specify some dependency, so that that non relevant > pass will not have a chance to run. The PassManager should be able to > figure that out given the runtime conditions. > > Chuck > > On 3/29/2013 3:38 PM, reed kotler wrote: >> Is it possible to dynamically add and remove passes once llc starts to >> run? >> >> Currently I have to add some machine function passes and only once >> they are running, I have them return right away because they are not >> relevant at that time. For example, mips16 does not use the delay slot >> optimizer but now I would need to add the pass all the time just in >> case someone specified that a particular function be compiled as mips32. >> >> It seems from the pass manager that you can add and subtract passes >> but I was unclear as to whether this was something you have to do >> before the pass manager starts to run passes. >> >> Tia. >> >> Reed >> >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>