You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address several problems with OpenMP constructs and unstructured code.
In fir, code that contains a GOTO, EXIT, or any of a number of other
branches is _unstructured_. OpenMP generally prohibits branching into
or out of an OpenMP construct, but allows unstructured branches where
the source and target are both local to the construct. A structured
loop is implemented with a fir.do_loop op, and a structured IF is
implemented with a fir.if op. Unstructured loops and IFs are implemented
with explicit branches between basic blocks. This PR allows an OpenMP
construct to immediately follow unstructured code (see PR 1077), and
allows an OpenMP construct to contain unstructured code (see Issue 1120).
The same issues are likely present in OpenACC code. The infrastructure
changes in this PR should also be valid for OpenACC code, but file
OpenACC.cpp is not changed.
This PR has a partial fix for a problem with nested parallelism, but there
are additional problems to address.
0 commit comments