<div dir="ltr">On Mon, Apr 22, 2013 at 8:09 AM, Pete Couperus <span dir="ltr"><<a href="mailto:pjcoup@gmail.com" target="_blank">pjcoup@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hello Reed,<br><br></div>Basic blocks need to end with a terminator instruction.<br>There is an "unreachable" terminator instruction, whose documentation says:<br>
"the presence of this instruction indicates some higher level knowledge that the end of the block cannot be reached."<br>
</div><div>(see include/llvm/IR/Instructions.h).<br></div><div>I've been able to suppress the return using this.  I'm not completely clear if this would be the right use for your scenario.</div></div></blockquote>
<div><br></div><div style>This is the right thing to do. If your inline assembly always transfers code out of the block, then the end of the block is indeed unreachable. You do need to ensure that the asm expression has the "sideeffect" attribute so that it doesn't get optimized away.</div>
<div style><br></div><div style>-Joe</div></div></div></div>