[LLVMdev] dynamic passes

reed kotler rkotler at mips.com
Fri Mar 29 16:28:46 PDT 2013


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





More information about the llvm-dev mailing list