[LLVMdev] predicates and conditional execution

Justin Holewinski justin.holewinski at gmail.com
Tue May 24 05:13:31 PDT 2011


On Tue, May 24, 2011 at 3:02 AM, roy rosen <roy.1rosen at gmail.com> wrote:

> Hi,
>
> I was wondering if LLVM supports predicates and conditional execution.
> Something like we have in IA64.
> There is a register class of predicates and then every instruction may
> be predicated by a register from this class.
> For example:
>
> cmp_less p, x, y // p is a predicate which gets the result of x < y
> p add x, x, 2 // if p then do the add instruction
>
> Is there support in LLVM to something like that?

Which architecture can show a good example for the implementation of that?
>

You may want to look at the PTX back-end.  The PTX assembly language
supports exactly what you are describing, and we currently use it to
implement conditional branching.  There is a register class for predicates
(i1 in LLVM) and all machine instructions have a predicate operand and
predicate filter (PTX supports inverted predicates).  For un-predicated
instructions, the predicate operand is just set to the special NoRegister
constant.


>
> Thanks, Roy.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



-- 

Thanks,

Justin Holewinski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110524/2b4dc4c7/attachment.html>


More information about the llvm-dev mailing list