[flang][OpenMP][OpenACC] Support stop statement in OpenMP/OpenACC region
This supports lowering of stop statement in OpenMP/OpenACC region.
- OpenMP/OpenACC: Emit fir.unreachable only if the block is not terminated by any terminator. This avoids knocking off an existing OpenMP/OpenACC terminator.
- OpenMP: Emit the OpenMP terminator instead of fir.unreachable since OpenMP regions can only be terminated by OpenMP terminators. This is currently skipped for OpenACC since unstructured code is not yet handled specially in OpenACC lowering.
Fixes #60737
Fixes #61877
Co-authored-by: Peixin Qiao <qiaopeixin@huawei.com>
Co-authored-by: Val Donaldson <vdonaldson@nvidia.com>
This is duplicate of https://github.com/llvm/llvm-project/blob/7371ec76299df6922911233bd6ee07d7629d09b6/flang/lib/Lower/Bridge.cpp#L4063-L4067. Anyway to use it?