The following changes are made for OpenMP operations with unstructured region,
- For combined constructs the outer operation is considered a structured
region and the inner one as the unstructured.
- Added a condition to ensure that we create new blocks only once for nested
unstructured OpenMP constructs.
Tests are added for checking the structure of the CFG.
Note: This is part of upstreaming from the fir-dev branch of
https://github.com/flang-compiler/f18-llvm-project. Code originally reviewed
at https://github.com/flang-compiler/f18-llvm-project/pull/1394.
@shraiysh the second check is here.