tentzen added a comment.

> It may be helpful (even for the reviewers) to first specify their behavior,
>  instead of writing that after-the-fact "backwardly" based on the 
> implementation.

For reviewers, the purpose of those intrinsic are described in Summary section:

- Two intrinsic are created to track CPP object scopes; eha_scope_begin() and 
eha_scope_end(). _scope_begin() is immediately added after ctor() is called and 
EHStack is pushed. So it must be an invoke, not a call. With that it's also 
guaranteed an EH-cleanup-pad is created regardless whether there exists a call 
in this scope. _scope_end is added before dtor(). These two intrinsics make the 
computation of Block-State possible in downstream code gen pass, even in the 
presence of ctor/dtor inlining.
- Two intrinsic, seh_try_begin() and seh_try_end(), are added for C-code to 
mark _try boundary and to prevent from exceptions being moved across _try 
boundary.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80344/new/

https://reviews.llvm.org/D80344



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to