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 >>
Can you do this instead: PassManager pm = ...; pm.add(other needed passes); ... if(arch you are interested) pm.add(your pass); ... pm.run(); Chuck On 3/29/2013 4:15 PM, Reed Kotler wrote:> 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 >>> > > >
not in this case. the architecture is changing on a per function pass. mips32->mips16->mips16.... same issue would be for arm->thumb1->arm On 03/29/2013 04:26 PM, Chuck Zhao wrote:> Can you do this instead: > > PassManager pm = ...; > pm.add(other needed passes); > ... > if(arch you are interested) > pm.add(your pass); > ... > pm.run(); > > > Chuck > > > On 3/29/2013 4:15 PM, Reed Kotler wrote: >> 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 >>>> >> >> >> >