[PATCH] D70258: [OpenMP][IR-Builder] Introduce the finalization stack

Johannes Doerfert via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 17 16:39:38 PST 2019


jdoerfert added a comment.

In D70258#1788861 <https://reviews.llvm.org/D70258#1788861>, @rjmccall wrote:

> That's what I figured.


Just to say this again:
Current OpenMP code generation keeps a second stack for exactly the same purpose as the one introduced here.

> The thing is that that necessarily interacts correctly with everything in Clang's IRGen in ways that making a second stack that Clang's IRGen doesn't directly know about doesn't.
> 
> I think you either need to extract Clang's entire cleanup-stack concept into a generic frontend library, so that both Clang and your generic OpenMP lowering just manipulate that common stack, or you need to call back into the frontend to manage your cleanup.

I like the idea of a generic way to do this but I'm unsure if that is needed given the restrictions on OpenMP regions. We basically are not allowed to jump out by non-OpenMP means. What we do in the existing, and this rewritten stack is remember what OpenMP means will jump out of the current scope and to the end of the region. This can be reused in Flang as the restrictions hold there as well (as far as I know).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70258





More information about the cfe-commits mailing list