[LLVMdev] PHINode in entry block
John Criswell
jtcriswel at gmail.com
Tue Jul 15 08:14:44 PDT 2014
On 7/15/14, 9:55 AM, William Moses wrote:
> All,
>
> Consider the case where the entry block to a function acts like a loop
> (e.g. it ends with a conditional break to itself and somewhere else).
> How would one create a PHINode (representing an index perhaps) which
> has a constant index (say 0) when entering the function, and
> (oldval+1) when looping.
>
> I understand how to do this if the loop were not in the entry block
> (by simply using node->addIncoming(ConstantInt(...), entry),
> node->addIncoming(builder.CreateAdd(node,...),loopBlock) ).
>
> My question is how would one do this using the C++ API when there is
> no predecessor since it is the entry block.
An entry block cannot have any phi-nodes. If you have a function that
starts with a loop, then your entry block will be a single unconditional
branch to a basic block which is the first basic block of the loop.
Regards,
John Criswell
>
> Thanks,
> Billy Moses
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140715/a32c0532/attachment.html>
More information about the llvm-dev
mailing list