[LLVMdev] Emit code for 'unreachable'

Reid Kleckner rnk at google.com
Tue Apr 15 14:22:57 PDT 2014


On Tue, Apr 15, 2014 at 2:14 PM, Vadim Chugunov <vadimcn at gmail.com> wrote:

> I've looked through LLVM codegen code and found that
> SelectionDAGBuilder::visitUnreachable() is basically a no-op.  So I don't
> see how it could have generated anything...
>
> What would be the right way to go about adding this functionality?
> Right now I am thinking to add 'EmitTargetCodeForUnreachable()' method to
> TargetSelectionDAGInfo class, so that targets can emit code for
> 'unreachable', if they need that.   Does that sound right?
>

Personally I'm in favor, but others may disagree.  Right now clang inserts
calls to llvm.trap(), and that's how we get ud2's when falling off the end
of a function with a return type.  That may be the preferred approach for
__builtin_unreachable(), since other clients of LLVM at -O0 may actually
want it to produce code quickly without inserting any debugging aids.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140415/57546086/attachment.html>


More information about the llvm-dev mailing list