[llvm-dev] Questions on ifconversion and predication

Bagel via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 10 10:43:00 PDT 2020


Thanks.

EarlyIfConversion is too early for my use.  It does appear that perhaps 
IfConversion can be used prior to register allocation.  There is a line
in IfConverter::runOnMachineFunction():
    PreRegAlloc = MRI->isSSA();
I don't think any in-tree architectures use IfConverter pre register 
allocation, but perhaps there are out-of-tree uses?

regards,
brian

On 4/7/20 3:17 PM, jingu kang wrote:
> Hi Bagel
> 
> As far as I know, the EarlyIfConversion pass is used before register
> allocation. It works on SSA form and it does not use predication.
> The IfConversion pass is used after register allocation and it uses
> predication. Unfortunately, it does not support multiple predication.
> 
> I hope it helps you.
> 
> Cheers
> JinGu Kang
> 
> 2020년 3월 24일 (화) 오후 6:22, Bagel via llvm-dev <llvm-dev at lists.llvm.org>님이 작성:
>>
>> Assume an architecture that has multiple condition code registers, e.g., powerpc.
>>
>> Now assume that there are predicate instructions like thumb2, but can specify
>> which condition code register they refer to.
>>
>> Now also assume that these predicate instructions themselves are predicatible,
>> if executed they change the current predication state.
>>
>> Can LLVM handle multiple levels of predication?
>> When is IfConversion used and when is EarlyIfConversion used?
>> Is there any documentation on this?
>>
>> thanks,
>> brian
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list