<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<br>
<div class="moz-cite-prefix">On 16/10/15 15:06, David Chisnall
wrote:<br>
</div>
<blockquote
cite="mid:8656249C-CD1D-44DD-989F-DC3F01740952@cl.cam.ac.uk"
type="cite">
<pre wrap=""><b>LLVM does not allow nested instructions</b>. Functions contain basic blocks, basic blocks contain instructions. Instructions <span class="moz-txt-star"><span class="moz-txt-tag">*</span>refer to<span class="moz-txt-tag">*</span></span> other values as operands. <b>These values are either local registers (other instructions)</b>, 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).</pre>
</blockquote>
The language of LLVM allows an <b>operand</b> (as it is a Value) to
refer to an Argument, Basic Block , User (-> Constant, <b>Instruction</b>,
Operator). <br>
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?!<br>
How can we say that LLVM doesn't allow nested instructions?!<br>
Sorry, if I miss something here, but this confuses me.<br>
<br>
--istavrak<br>
<br>
</body>
</html>