[LLVMdev] Instruction as Value in PHI

Eli Friedman eli.friedman at gmail.com
Thu Sep 20 15:33:19 PDT 2012


On Thu, Sep 20, 2012 at 3:18 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
> Curious, is there a pass/mechanism that exists to promote an instruction
> that is a value of a PHI?
>
> For example, if one of the incoming values is a sub(x, y) from BB2, does
> there exist something to promote this instruction back to BB2 (such that tmp
> = sub(x,y)) and the PHI replaces the sub instr with tmp?
>
> Or is the above the natural state that is then optimized into using sub, is
> there a call that does this that I can turn off?

It sounds like you're talking about a ConstantExpr.  Those don't
normally get lowered until CodeGen.  You could expand it at the IR
level, but there isn't any builtin function to do that IIRC.

-Eli



More information about the llvm-dev mailing list