Commit 2187cbf5 authored by Ye Luo's avatar Ye Luo
Browse files

[OpenMP][libomptarget] Add __tgt_target_return_t enum for __tgt_target_XXX return int

The defintion of OFFLOAD_SUCCESS and OFFLOAD_FAIL used in plugin APIs and libomptarget public APIs are not consistent.
Create __tgt_target_return_t for libomptarget public APIs.

Differential Revision: https://reviews.llvm.org/D109304
parent 99ea8ac9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -28,6 +28,18 @@
// Don't format out enums and structs.
// clang-format off

/// return flags of __tgt_target_XXX public APIs
enum __tgt_target_return_t : int {
  /// successful offload executed on a target device
  OMP_TGT_SUCCESS = 0,
  /// offload may not execute on the requested target device
  /// this scenario can be caused by the device not available or unsupported
  /// as described in the Execution Model in the specifcation
  /// this status may not be used for target device execution failure
  /// which should be handled internally in libomptarget
  OMP_TGT_FAIL = ~0
};

/// Data attributes for each data reference used in an OpenMP target region.
enum tgt_map_type {
  // No flags
+7 −4
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ EXTERN int __tgt_target_mapper(ident_t *loc, int64_t device_id, void *host_ptr,
     DPxPTR(host_ptr), device_id);
  if (checkDeviceAndCtors(device_id, loc)) {
    DP("Not offloading to device %" PRId64 "\n", device_id);
    return OFFLOAD_FAIL;
    return OMP_TGT_FAIL;
  }

  if (getInfoLevel() & OMP_INFOTYPE_KERNEL_ARGS)
@@ -307,7 +307,8 @@ EXTERN int __tgt_target_mapper(ident_t *loc, int64_t device_id, void *host_ptr,
  if (rc == OFFLOAD_SUCCESS)
    rc = AsyncInfo.synchronize();
  handleTargetOutcome(rc == OFFLOAD_SUCCESS, loc);
  return rc;
  assert(rc == OFFLOAD_SUCCESS && "__tgt_target_mapper unexpected failure!");
  return OMP_TGT_SUCCESS;
}

EXTERN int __tgt_target_nowait_mapper(
@@ -357,7 +358,7 @@ EXTERN int __tgt_target_teams_mapper(ident_t *loc, int64_t device_id,
     DPxPTR(host_ptr), device_id);
  if (checkDeviceAndCtors(device_id, loc)) {
    DP("Not offloading to device %" PRId64 "\n", device_id);
    return OFFLOAD_FAIL;
    return OMP_TGT_FAIL;
  }

  if (getInfoLevel() & OMP_INFOTYPE_KERNEL_ARGS)
@@ -380,7 +381,9 @@ EXTERN int __tgt_target_teams_mapper(ident_t *loc, int64_t device_id,
  if (rc == OFFLOAD_SUCCESS)
    rc = AsyncInfo.synchronize();
  handleTargetOutcome(rc == OFFLOAD_SUCCESS, loc);
  return rc;
  assert(rc == OFFLOAD_SUCCESS &&
         "__tgt_target_teams_mapper unexpected failure!");
  return OMP_TGT_SUCCESS;
}

EXTERN int __tgt_target_teams_nowait_mapper(