[llvm-dev] Break nested instructions?

Irini Stavrakantonaki via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 16 05:28:03 PDT 2015



On 16/10/15 15:06, David Chisnall wrote:
> *LLVM does not allow nested instructions*.  Functions contain basic blocks, basic blocks contain instructions.  Instructions*refer to*  other values as operands.*These values are either local registers (other instructions)*, global values, or constant expressions.  Constant expressions can only refer to globals or other constant expressions (and then, only to the address of the global, which is a constant, not to its value).
The language of LLVM allows an *operand* (as it is a Value) to refer to 
an Argument, Basic Block , User (-> Constant, *Instruction*, Operator).
So, an operand of an instruction can be an instruction. But, doesn't 
this mean that we CAN have an "inlined" instruction inside another one?!
How can we say that LLVM doesn't allow nested instructions?!
Sorry, if I miss something here, but this confuses me.

--istavrak

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151016/9d516b16/attachment.html>


More information about the llvm-dev mailing list