[flang][OpenMP][OpenACC] Support stop statement in OpenMP/OpenACC region
authorPeixin Qiao <qiaopeixin@huawei.com>
Thu, 15 Jun 2023 09:52:04 +0000 (09:52 +0000)
committerKiran Chandramohan <kiran.chandramohan@arm.com>
Thu, 15 Jun 2023 10:29:42 +0000 (10:29 +0000)
commited27d28f9a53d689c98a3bef26980e2858350548
treef23012e87d23377e7d9c3e7b3c6d09b478a38ee9
parentc3a8ac79b838eca5d01d4ac0f43ecadbd3bced8b
[flang][OpenMP][OpenACC] Support stop statement in OpenMP/OpenACC region

[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: Kiran Chandramohan <kiranchandramohan@gmail.com>
Co-authored-by: Val Donaldson <vdonaldson@nvidia.com>
Reviewed By: vdonaldson, peixin

Differential Revision: https://reviews.llvm.org/D129969
flang/include/flang/Lower/OpenMP.h
flang/lib/Lower/OpenMP.cpp
flang/lib/Lower/Runtime.cpp
flang/test/Lower/OpenACC/stop-stmt-in-region.f90 [new file with mode: 0644]
flang/test/Lower/OpenMP/stop-stmt-in-region.f90 [new file with mode: 0644]