[LLVMdev] Value liveout (uses)
rjmccall at apple.com
Sat May 30 12:32:15 PDT 2009
On May 30, 2009, at 5:03 AM, Rotem Varon wrote:
> Is it possible to determine the liveout of the operands (see example
> bellow) ?
> %5 = add i32 %4, %3
> For '%5': i can simply use " i->isUsedOutsideOfBlock() "
> For '%3' and '%4' : this is the question ...
By definition, operands are live out if they're used in any block
that's reachable from
the block containing the instruction. Barring a few special cases
covered, the easiest way I know to compute that in general is to first
set of reachable blocks, then iterate through the uses, checking
whether that use
is in a reachable block (if the use is in a PHI node, only count it if
corresponding incoming block is reachable).
> From your answer, is it possible to determine which value is liveout
> ( in binary instruction)?
All of these answers are things you would do for an individual LLVM
"Value". I don't
know what you mean by "which value" beyond that, and I don't know what
by "in binary instruction".
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev