[llvm-dev] Funclet restrictions and Verifier
Juan Manuel Martinez Caamaño via llvm-dev
llvm-dev at lists.llvm.org
Fri May 12 08:14:28 PDT 2017
Hi, Folks!
There are restrictions on the IR that is allowed inside a funclet which are
not enforced by the verifier.
Among them:
- [1]* No variables live into or out of the funclet can be allocated in
registers.*
- [2]* If any funclet EH pads have been “entered” but not “exited” it is
undefined behavior to execute a call or invoke which:*
- *does not have a "funclet" bundle and is not a call to a nounwind
intrinsic, or*
- *has a "funclet" bundle whose operand is not the
most-recently-entered not-yet-exited funclet EH pad.*
Is there any reason for the Verifier not to enforce these constraints? I
started to add these checks to the Verifier.
Cheers,
Juan
[1] http://llvm.org/docs/ExceptionHandling.html#id32
[2] http://llvm.org/docs/LangRef.html#funclet-operand-bundles
--
Juan Manuel Martinez Caamaño
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170512/d07bbbec/attachment.html>
More information about the llvm-dev
mailing list