Unverified Commit 0193af47 authored by Kevin Sala Penades's avatar Kevin Sala Penades Committed by GitHub
Browse files

[offload] Fix use of AsyncInfoWrapper's finalize function (#194098)

The expected use is to forward the error from the asynchronous
operation's issuing (e.g., launchImpl) directly into the
AsyncInfoWrapper::finalize(). The check of the error is already
performed inside that function. No need to forward a dummy success error
code.
parent 40a303d9
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -3464,14 +3464,11 @@ private:

    KernelArgsTy KernelArgs = {};
    uint32_t NumBlocksAndThreads[3] = {1u, 1u, 1u};
    if (auto Err = AMDGPUKernel.launchImpl(
    auto Err = AMDGPUKernel.launchImpl(
        *this, NumBlocksAndThreads, NumBlocksAndThreads, 0, KernelArgs,
            KernelLaunchParamsTy{}, AsyncInfoWrapper))
      return Err;
        KernelLaunchParamsTy{}, AsyncInfoWrapper);

    Error Err = Plugin::success();
    AsyncInfoWrapper.finalize(Err);

    return Err;
  }

+3 −5
Original line number Diff line number Diff line
@@ -1406,12 +1406,10 @@ private:

    KernelArgsTy KernelArgs = {};
    uint32_t NumBlocksAndThreads[3] = {1u, 1u, 1u};
    if (auto Err = CUDAKernel.launchImpl(
            *this, NumBlocksAndThreads, NumBlocksAndThreads, 0, KernelArgs,
            KernelLaunchParamsTy{}, AsyncInfoWrapper))
      return Err;
    auto Err = CUDAKernel.launchImpl(*this, NumBlocksAndThreads,
                                     NumBlocksAndThreads, 0, KernelArgs,
                                     KernelLaunchParamsTy{}, AsyncInfoWrapper);

    Error Err = Plugin::success();
    AsyncInfoWrapper.finalize(Err);
    if (Err)
      return Err;
+1 −4
Original line number Diff line number Diff line
@@ -1375,10 +1375,7 @@ Error L0DeviceTy::callGlobalCtorDtorCommon(GenericPluginTy &Plugin,
                          KernelArgs, KernelLaunchParamsTy{}, AsyncInfoWrapper);

  AsyncInfoWrapper.finalize(Err);
  if (Err)
  return CleanupBufferAndErr(std::move(Err));

  return CleanupBufferAndErr(Plugin::success());
}

} // namespace llvm::omp::target::plugin