[PATCH] D80344: [Windows SEH]: HARDWARE EXCEPTION HANDLING (MSVC -EHa) - Part 1

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 23 03:40:26 PDT 2020


lebedev.ri added a comment.

In D80344#2051804 <https://reviews.llvm.org/D80344#2051804>, @tentzen wrote:

> > 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:


Like the disscussion we just had in HWLoops patch, unless the behavior of new intrinsics/etc is stated in langref, they are unspecified.

> - 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





More information about the llvm-commits mailing list