[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