<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>