[flang-commits] [flang] 83dc9c6 - [mlir][openacc] Remove OpenACCToLLVMIRTranslation (#209295)

via flang-commits flang-commits at lists.llvm.org
Tue Jul 14 09:52:35 PDT 2026


Author: Valentin Clement (バレンタイン クレメン)
Date: 2026-07-14T09:52:29-07:00
New Revision: 83dc9c6c9a56bc90faa810512e0577e59dc46033

URL: https://github.com/llvm/llvm-project/commit/83dc9c6c9a56bc90faa810512e0577e59dc46033
DIFF: https://github.com/llvm/llvm-project/commit/83dc9c6c9a56bc90faa810512e0577e59dc46033.diff

LOG: [mlir][openacc] Remove OpenACCToLLVMIRTranslation (#209295)

OpenACCToLLVMIRTranslation was designed more than 5 years ago and does
not align with the current upstreaming effort. OpenACC will be converted
to LLVM IR dialect before the translation to LLVM IR so this translation
is obsolete. Remove it to avoid confusion.

Added: 
    

Modified: 
    flang/lib/Optimizer/Support/CMakeLists.txt
    flang/lib/Optimizer/Support/InitFIR.cpp
    flang/lib/Optimizer/Transforms/CMakeLists.txt
    mlir/include/mlir/Target/LLVMIR/Dialect/All.h
    mlir/lib/Target/LLVMIR/CMakeLists.txt
    mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt
    utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Support/BUILD.bazel
    utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
    utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

Removed: 
    mlir/include/mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h
    mlir/lib/Target/LLVMIR/Dialect/OpenACC/CMakeLists.txt
    mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
    mlir/test/Target/LLVMIR/openacc-llvm.mlir


################################################################################
diff  --git a/flang/lib/Optimizer/Support/CMakeLists.txt b/flang/lib/Optimizer/Support/CMakeLists.txt
index 6f3652b1a86af..9f6069be6323d 100644
--- a/flang/lib/Optimizer/Support/CMakeLists.txt
+++ b/flang/lib/Optimizer/Support/CMakeLists.txt
@@ -24,7 +24,6 @@ add_flang_library(FIRSupport
   MLIR_LIBS
   MLIRBuiltinToLLVMIRTranslation
   MLIRLLVMToLLVMIRTranslation
-  MLIROpenACCToLLVMIRTranslation
   MLIROpenMPToLLVMIRTranslation
   MLIRRegisterAllDialects
   MLIRRegisterAllExtensions

diff  --git a/flang/lib/Optimizer/Support/InitFIR.cpp b/flang/lib/Optimizer/Support/InitFIR.cpp
index 0753c4511d9c6..09852b1add372 100644
--- a/flang/lib/Optimizer/Support/InitFIR.cpp
+++ b/flang/lib/Optimizer/Support/InitFIR.cpp
@@ -9,13 +9,10 @@
 #include "flang/Optimizer/Support/InitFIR.h"
 #include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
-#include "mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.h"
 
 void fir::support::registerLLVMTranslation(mlir::MLIRContext &context) {
   mlir::DialectRegistry registry;
-  // Register OpenACC dialect interface here as well.
-  registerOpenACCDialectTranslation(registry);
   // Register OpenMP dialect interface here as well.
   registerOpenMPDialectTranslation(registry);
   // Register LLVM-IR dialect interface.

diff  --git a/flang/lib/Optimizer/Transforms/CMakeLists.txt b/flang/lib/Optimizer/Transforms/CMakeLists.txt
index 8ff67d901b31d..1a4940af95d3e 100644
--- a/flang/lib/Optimizer/Transforms/CMakeLists.txt
+++ b/flang/lib/Optimizer/Transforms/CMakeLists.txt
@@ -91,7 +91,6 @@ add_flang_library(FIRTransforms
   MLIRMathTransforms
   MLIRNVVMDialect
   MLIROpenACCDialect
-  MLIROpenACCToLLVMIRTranslation
   MLIROpenMPDialect
   MLIRTransformUtils
 )

diff  --git a/mlir/include/mlir/Target/LLVMIR/Dialect/All.h b/mlir/include/mlir/Target/LLVMIR/Dialect/All.h
index 05b66ace902ad..95e90789e9580 100644
--- a/mlir/include/mlir/Target/LLVMIR/Dialect/All.h
+++ b/mlir/include/mlir/Target/LLVMIR/Dialect/All.h
@@ -23,7 +23,6 @@
 #include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/NVVM/LLVMIRToNVVMTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.h"
-#include "mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/Ptr/PtrToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h"
@@ -44,7 +43,6 @@ static inline void registerAllToLLVMIRTranslations(DialectRegistry &registry) {
   registerGPUDialectTranslation(registry);
   registerLLVMDialectTranslation(registry);
   registerNVVMDialectTranslation(registry);
-  registerOpenACCDialectTranslation(registry);
   registerOpenMPDialectTranslation(registry);
   registerPtrDialectTranslation(registry);
   registerROCDLDialectTranslation(registry);

diff  --git a/mlir/include/mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h b/mlir/include/mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h
deleted file mode 100644
index d7e847f9cd32a..0000000000000
--- a/mlir/include/mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//===- OpenACCToLLVMIRTranslation.h - OpenACC Dialect to LLVM IR -- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This provides registration calls for OpenACC dialect to LLVM IR translation.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MLIR_TARGET_LLVMIR_DIALECT_OPENACC_OPENACCTOLLVMIRTRANSLATION_H
-#define MLIR_TARGET_LLVMIR_DIALECT_OPENACC_OPENACCTOLLVMIRTRANSLATION_H
-
-namespace mlir {
-
-class DialectRegistry;
-class MLIRContext;
-
-/// Register the OpenACC dialect and the translation to the LLVM IR in
-/// the given registry;
-void registerOpenACCDialectTranslation(DialectRegistry &registry);
-
-/// Register the OpenACC dialect and the translation in the registry
-/// associated with the given context.
-void registerOpenACCDialectTranslation(MLIRContext &context);
-
-} // namespace mlir
-
-#endif // MLIR_TARGET_LLVMIR_DIALECT_OPENACC_OPENACCTOLLVMIRTRANSLATION_H

diff  --git a/mlir/lib/Target/LLVMIR/CMakeLists.txt b/mlir/lib/Target/LLVMIR/CMakeLists.txt
index db221697edd05..69fd5583fac2a 100644
--- a/mlir/lib/Target/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/CMakeLists.txt
@@ -56,7 +56,6 @@ add_mlir_translation_library(MLIRToLLVMIRTranslationRegistration
   MLIRGPUToLLVMIRTranslation
   MLIRLLVMToLLVMIRTranslation
   MLIRNVVMToLLVMIRTranslation
-  MLIROpenACCToLLVMIRTranslation
   MLIROpenMPToLLVMIRTranslation
   MLIRROCDLToLLVMIRTranslation
   MLIRPtrToLLVMIRTranslation

diff  --git a/mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt
index a102c4323075b..d590b236cfc91 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt
@@ -5,7 +5,6 @@ add_subdirectory(Builtin)
 add_subdirectory(GPU)
 add_subdirectory(LLVMIR)
 add_subdirectory(NVVM)
-add_subdirectory(OpenACC)
 add_subdirectory(OpenMP)
 add_subdirectory(ROCDL)
 add_subdirectory(Ptr)

diff  --git a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/OpenACC/CMakeLists.txt
deleted file mode 100644
index e43581e28c77a..0000000000000
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-add_mlir_translation_library(MLIROpenACCToLLVMIRTranslation
-  OpenACCToLLVMIRTranslation.cpp
-
-  LINK_COMPONENTS
-  Core
-
-  LINK_LIBS PUBLIC
-  MLIRIR
-  MLIRLLVMDialect
-  MLIROpenACCDialect
-  MLIRSupport
-  MLIRTargetLLVMIRExport
-  MLIRTransformUtils
-  )

diff  --git a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
deleted file mode 100644
index 9bb6939043621..0000000000000
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
+++ /dev/null
@@ -1,541 +0,0 @@
-//===- OpenACCToLLVMIRTranslation.cpp -------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a translation between the MLIR OpenACC dialect and LLVM
-// IR.
-//
-//===----------------------------------------------------------------------===//
-
-#include "mlir/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.h"
-#include "mlir/Analysis/TopologicalSortUtils.h"
-#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
-#include "mlir/Dialect/OpenACC/OpenACC.h"
-#include "mlir/IR/Operation.h"
-#include "mlir/Support/LLVM.h"
-#include "mlir/Target/LLVMIR/Dialect/OpenMPCommon.h"
-#include "mlir/Target/LLVMIR/ModuleTranslation.h"
-
-#include "llvm/ADT/TypeSwitch.h"
-#include "llvm/Frontend/OpenMP/OMPConstants.h"
-
-using namespace mlir;
-
-using OpenACCIRBuilder = llvm::OpenMPIRBuilder;
-
-//===----------------------------------------------------------------------===//
-// Utility functions
-//===----------------------------------------------------------------------===//
-
-/// Flag values are extracted from openmp/libomptarget/include/omptarget.h and
-/// mapped to corresponding OpenACC flags.
-static constexpr uint64_t kCreateFlag = 0x000;
-static constexpr uint64_t kDeviceCopyinFlag = 0x001;
-static constexpr uint64_t kHostCopyoutFlag = 0x002;
-static constexpr uint64_t kPresentFlag = 0x1000;
-static constexpr uint64_t kDeleteFlag = 0x008;
-// Runtime extension to implement the OpenACC second reference counter.
-static constexpr uint64_t kHoldFlag = 0x2000;
-
-/// Default value for the device id
-static constexpr int64_t kDefaultDevice = -1;
-
-/// Create the location struct from the operation location information.
-static llvm::Value *createSourceLocationInfo(OpenACCIRBuilder &builder,
-                                             Operation *op) {
-  auto loc = op->getLoc();
-  auto funcOp = op->getParentOfType<LLVM::LLVMFuncOp>();
-  StringRef funcName = funcOp ? funcOp.getName() : "unknown";
-  uint32_t strLen;
-  llvm::Constant *locStr = mlir::LLVM::createSourceLocStrFromLocation(
-      loc, builder, funcName, strLen);
-  return builder.getOrCreateIdent(locStr, strLen);
-}
-
-/// Return the runtime function used to lower the given operation.
-static llvm::Function *getAssociatedFunction(OpenACCIRBuilder &builder,
-                                             Operation *op) {
-  return llvm::TypeSwitch<Operation *, llvm::Function *>(op)
-      .Case([&](acc::EnterDataOp) {
-        return builder.getOrCreateRuntimeFunctionPtr(
-            llvm::omp::OMPRTL___tgt_target_data_begin_mapper);
-      })
-      .Case([&](acc::ExitDataOp) {
-        return builder.getOrCreateRuntimeFunctionPtr(
-            llvm::omp::OMPRTL___tgt_target_data_end_mapper);
-      })
-      .Case([&](acc::UpdateOp) {
-        return builder.getOrCreateRuntimeFunctionPtr(
-            llvm::omp::OMPRTL___tgt_target_data_update_mapper);
-      });
-  llvm_unreachable("Unknown OpenACC operation");
-}
-
-/// Extract pointer, size and mapping information from operands
-/// to populate the future functions arguments.
-static LogicalResult
-processOperands(llvm::IRBuilderBase &builder,
-                LLVM::ModuleTranslation &moduleTranslation, Operation *op,
-                ValueRange operands, unsigned totalNbOperand,
-                uint64_t operandFlag, SmallVector<uint64_t> &flags,
-                SmallVectorImpl<llvm::Constant *> &names, unsigned &index,
-                struct OpenACCIRBuilder::MapperAllocas &mapperAllocas) {
-  OpenACCIRBuilder *accBuilder = moduleTranslation.getOpenMPBuilder();
-  llvm::LLVMContext &ctx = builder.getContext();
-  auto *i8PtrTy = llvm::PointerType::getUnqual(ctx);
-  auto *arrI8PtrTy = llvm::ArrayType::get(i8PtrTy, totalNbOperand);
-  auto *i64Ty = llvm::Type::getInt64Ty(ctx);
-  auto *arrI64Ty = llvm::ArrayType::get(i64Ty, totalNbOperand);
-
-  for (Value data : operands) {
-    llvm::Value *dataValue = moduleTranslation.lookupValue(data);
-
-    llvm::Value *dataPtrBase;
-    llvm::Value *dataPtr;
-    llvm::Value *dataSize;
-
-    if (isa<LLVM::LLVMPointerType>(data.getType())) {
-      dataPtrBase = dataValue;
-      dataPtr = dataValue;
-      dataSize = accBuilder->getSizeInBytes(dataValue);
-    } else {
-      return op->emitOpError()
-             << "Data operand must be legalized before translation."
-             << "Unsupported type: " << data.getType();
-    }
-
-    // Store base pointer extracted from operand into the i-th position of
-    // argBase.
-    llvm::Value *ptrBaseGEP = builder.CreateInBoundsGEP(
-        arrI8PtrTy, mapperAllocas.ArgsBase,
-        {builder.getInt32(0), builder.getInt32(index)});
-    builder.CreateStore(dataPtrBase, ptrBaseGEP);
-
-    // Store pointer extracted from operand into the i-th position of args.
-    llvm::Value *ptrGEP = builder.CreateInBoundsGEP(
-        arrI8PtrTy, mapperAllocas.Args,
-        {builder.getInt32(0), builder.getInt32(index)});
-    builder.CreateStore(dataPtr, ptrGEP);
-
-    // Store size extracted from operand into the i-th position of argSizes.
-    llvm::Value *sizeGEP = builder.CreateInBoundsGEP(
-        arrI64Ty, mapperAllocas.ArgSizes,
-        {builder.getInt32(0), builder.getInt32(index)});
-    builder.CreateStore(dataSize, sizeGEP);
-
-    flags.push_back(operandFlag);
-    llvm::Constant *mapName =
-        mlir::LLVM::createMappingInformation(data.getLoc(), *accBuilder);
-    names.push_back(mapName);
-    ++index;
-  }
-  return success();
-}
-
-/// Process data operands from acc::EnterDataOp
-static LogicalResult
-processDataOperands(llvm::IRBuilderBase &builder,
-                    LLVM::ModuleTranslation &moduleTranslation,
-                    acc::EnterDataOp op, SmallVector<uint64_t> &flags,
-                    SmallVectorImpl<llvm::Constant *> &names,
-                    struct OpenACCIRBuilder::MapperAllocas &mapperAllocas) {
-  // TODO add `create_zero` and `attach` operands
-
-  unsigned index = 0;
-
-  // Create operands are handled as `alloc` call.
-  // Copyin operands are handled as `to` call.
-  llvm::SmallVector<mlir::Value> create, copyin;
-  for (mlir::Value dataOp : op.getDataClauseOperands()) {
-    if (auto createOp = dataOp.getDefiningOp<acc::CreateOp>()) {
-      create.push_back(createOp.getVarPtr());
-    } else if (auto copyinOp = mlir::dyn_cast_or_null<acc::CopyinOp>(
-                   dataOp.getDefiningOp())) {
-      copyin.push_back(copyinOp.getVarPtr());
-    }
-  }
-
-  auto nbTotalOperands = create.size() + copyin.size();
-
-  // Create operands are handled as `alloc` call.
-  if (failed(processOperands(builder, moduleTranslation, op, create,
-                             nbTotalOperands, kCreateFlag, flags, names, index,
-                             mapperAllocas)))
-    return failure();
-
-  // Copyin operands are handled as `to` call.
-  if (failed(processOperands(builder, moduleTranslation, op, copyin,
-                             nbTotalOperands, kDeviceCopyinFlag, flags, names,
-                             index, mapperAllocas)))
-    return failure();
-
-  return success();
-}
-
-/// Process data operands from acc::ExitDataOp
-static LogicalResult
-processDataOperands(llvm::IRBuilderBase &builder,
-                    LLVM::ModuleTranslation &moduleTranslation,
-                    acc::ExitDataOp op, SmallVector<uint64_t> &flags,
-                    SmallVectorImpl<llvm::Constant *> &names,
-                    struct OpenACCIRBuilder::MapperAllocas &mapperAllocas) {
-  // TODO add `detach` operands
-
-  unsigned index = 0;
-
-  llvm::SmallVector<mlir::Value> deleteOperands, copyoutOperands;
-  for (mlir::Value dataOp : op.getDataClauseOperands()) {
-    if (auto devicePtrOp = mlir::dyn_cast_or_null<acc::GetDevicePtrOp>(
-            dataOp.getDefiningOp())) {
-      for (auto &u : devicePtrOp.getAccPtr().getUses()) {
-        if (mlir::dyn_cast_or_null<acc::DeleteOp>(u.getOwner()))
-          deleteOperands.push_back(devicePtrOp.getVarPtr());
-        else if (mlir::dyn_cast_or_null<acc::CopyoutOp>(u.getOwner()))
-          copyoutOperands.push_back(devicePtrOp.getVarPtr());
-      }
-    }
-  }
-
-  auto nbTotalOperands = deleteOperands.size() + copyoutOperands.size();
-
-  // Delete operands are handled as `delete` call.
-  if (failed(processOperands(builder, moduleTranslation, op, deleteOperands,
-                             nbTotalOperands, kDeleteFlag, flags, names, index,
-                             mapperAllocas)))
-    return failure();
-
-  // Copyout operands are handled as `from` call.
-  if (failed(processOperands(builder, moduleTranslation, op, copyoutOperands,
-                             nbTotalOperands, kHostCopyoutFlag, flags, names,
-                             index, mapperAllocas)))
-    return failure();
-
-  return success();
-}
-
-/// Process data operands from acc::UpdateOp
-static LogicalResult
-processDataOperands(llvm::IRBuilderBase &builder,
-                    LLVM::ModuleTranslation &moduleTranslation,
-                    acc::UpdateOp op, SmallVector<uint64_t> &flags,
-                    SmallVectorImpl<llvm::Constant *> &names,
-                    struct OpenACCIRBuilder::MapperAllocas &mapperAllocas) {
-  unsigned index = 0;
-
-  // Host operands are handled as `from` call.
-  // Device operands are handled as `to` call.
-  llvm::SmallVector<mlir::Value> from, to;
-  for (mlir::Value dataOp : op.getDataClauseOperands()) {
-    if (auto getDevicePtrOp = mlir::dyn_cast_or_null<acc::GetDevicePtrOp>(
-            dataOp.getDefiningOp())) {
-      from.push_back(getDevicePtrOp.getVarPtr());
-    } else if (auto updateDeviceOp =
-                   mlir::dyn_cast_or_null<acc::UpdateDeviceOp>(
-                       dataOp.getDefiningOp())) {
-      to.push_back(updateDeviceOp.getVarPtr());
-    }
-  }
-
-  if (failed(processOperands(builder, moduleTranslation, op, from, from.size(),
-                             kHostCopyoutFlag, flags, names, index,
-                             mapperAllocas)))
-    return failure();
-
-  if (failed(processOperands(builder, moduleTranslation, op, to, to.size(),
-                             kDeviceCopyinFlag, flags, names, index,
-                             mapperAllocas)))
-    return failure();
-  return success();
-}
-
-//===----------------------------------------------------------------------===//
-// Conversion functions
-//===----------------------------------------------------------------------===//
-
-/// Converts an OpenACC data operation into LLVM IR.
-static LogicalResult convertDataOp(acc::DataOp &op,
-                                   llvm::IRBuilderBase &builder,
-                                   LLVM::ModuleTranslation &moduleTranslation) {
-  llvm::LLVMContext &ctx = builder.getContext();
-  auto enclosingFuncOp = op.getOperation()->getParentOfType<LLVM::LLVMFuncOp>();
-  llvm::Function *enclosingFunction =
-      moduleTranslation.lookupFunction(enclosingFuncOp.getName());
-
-  OpenACCIRBuilder *accBuilder = moduleTranslation.getOpenMPBuilder();
-
-  llvm::Value *srcLocInfo = createSourceLocationInfo(*accBuilder, op);
-
-  llvm::Function *beginMapperFunc = accBuilder->getOrCreateRuntimeFunctionPtr(
-      llvm::omp::OMPRTL___tgt_target_data_begin_mapper);
-
-  llvm::Function *endMapperFunc = accBuilder->getOrCreateRuntimeFunctionPtr(
-      llvm::omp::OMPRTL___tgt_target_data_end_mapper);
-
-  // Number of arguments in the data operation.
-  unsigned totalNbOperand = op.getNumDataOperands();
-
-  struct OpenACCIRBuilder::MapperAllocas mapperAllocas;
-  OpenACCIRBuilder::InsertPointTy allocaIP(
-      &enclosingFunction->getEntryBlock(),
-      enclosingFunction->getEntryBlock().getFirstInsertionPt());
-  accBuilder->createMapperAllocas(builder.saveIP(), allocaIP, totalNbOperand,
-                                  mapperAllocas);
-
-  SmallVector<uint64_t> flags;
-  SmallVector<llvm::Constant *> names;
-  unsigned index = 0;
-
-  // TODO handle no_create, deviceptr and attach operands.
-
-  llvm::SmallVector<mlir::Value> copyin, copyout, create, present,
-      deleteOperands;
-  for (mlir::Value dataOp : op.getDataClauseOperands()) {
-    if (auto devicePtrOp = mlir::dyn_cast_or_null<acc::GetDevicePtrOp>(
-            dataOp.getDefiningOp())) {
-      for (auto &u : devicePtrOp.getAccPtr().getUses()) {
-        if (mlir::dyn_cast_or_null<acc::DeleteOp>(u.getOwner())) {
-          deleteOperands.push_back(devicePtrOp.getVarPtr());
-        } else if (mlir::dyn_cast_or_null<acc::CopyoutOp>(u.getOwner())) {
-          // TODO copyout zero currenlty handled as copyout. Update when
-          // extension available.
-          copyout.push_back(devicePtrOp.getVarPtr());
-        }
-      }
-    } else if (auto copyinOp = mlir::dyn_cast_or_null<acc::CopyinOp>(
-                   dataOp.getDefiningOp())) {
-      // TODO copyin readonly currenlty handled as copyin. Update when extension
-      // available.
-      copyin.push_back(copyinOp.getVarPtr());
-    } else if (auto createOp = mlir::dyn_cast_or_null<acc::CreateOp>(
-                   dataOp.getDefiningOp())) {
-      // TODO create zero currenlty handled as create. Update when extension
-      // available.
-      create.push_back(createOp.getVarPtr());
-    } else if (auto presentOp = mlir::dyn_cast_or_null<acc::PresentOp>(
-                   dataOp.getDefiningOp())) {
-      present.push_back(createOp.getVarPtr());
-    }
-  }
-
-  auto nbTotalOperands = copyin.size() + copyout.size() + create.size() +
-                         present.size() + deleteOperands.size();
-
-  // Copyin operands are handled as `to` call.
-  if (failed(processOperands(builder, moduleTranslation, op, copyin,
-                             nbTotalOperands, kDeviceCopyinFlag | kHoldFlag,
-                             flags, names, index, mapperAllocas)))
-    return failure();
-
-  // Delete operands are handled as `delete` call.
-  if (failed(processOperands(builder, moduleTranslation, op, deleteOperands,
-                             nbTotalOperands, kDeleteFlag, flags, names, index,
-                             mapperAllocas)))
-    return failure();
-
-  // Copyout operands are handled as `from` call.
-  if (failed(processOperands(builder, moduleTranslation, op, copyout,
-                             nbTotalOperands, kHostCopyoutFlag | kHoldFlag,
-                             flags, names, index, mapperAllocas)))
-    return failure();
-
-  // Create operands are handled as `alloc` call.
-  if (failed(processOperands(builder, moduleTranslation, op, create,
-                             nbTotalOperands, kCreateFlag | kHoldFlag, flags,
-                             names, index, mapperAllocas)))
-    return failure();
-
-  if (failed(processOperands(builder, moduleTranslation, op, present,
-                             nbTotalOperands, kPresentFlag | kHoldFlag, flags,
-                             names, index, mapperAllocas)))
-    return failure();
-
-  llvm::GlobalVariable *maptypes =
-      accBuilder->createOffloadMaptypes(flags, ".offload_maptypes");
-  llvm::Value *maptypesArg = builder.CreateConstInBoundsGEP2_32(
-      llvm::ArrayType::get(llvm::Type::getInt64Ty(ctx), totalNbOperand),
-      maptypes, /*Idx0=*/0, /*Idx1=*/0);
-
-  llvm::GlobalVariable *mapnames =
-      accBuilder->createOffloadMapnames(names, ".offload_mapnames");
-  llvm::Value *mapnamesArg = builder.CreateConstInBoundsGEP2_32(
-      llvm::ArrayType::get(llvm::PointerType::getUnqual(ctx), totalNbOperand),
-      mapnames, /*Idx0=*/0, /*Idx1=*/0);
-
-  // Create call to start the data region.
-  accBuilder->emitMapperCall(builder.saveIP(), beginMapperFunc, srcLocInfo,
-                             maptypesArg, mapnamesArg, mapperAllocas,
-                             kDefaultDevice, totalNbOperand);
-
-  // Convert the region.
-  llvm::BasicBlock *entryBlock = nullptr;
-
-  for (Block &bb : op.getRegion()) {
-    llvm::BasicBlock *llvmBB = llvm::BasicBlock::Create(
-        ctx, "acc.data", builder.GetInsertBlock()->getParent());
-    if (entryBlock == nullptr)
-      entryBlock = llvmBB;
-    moduleTranslation.mapBlock(&bb, llvmBB);
-  }
-
-  auto afterDataRegion = builder.saveIP();
-
-  llvm::UncondBrInst *sourceTerminator = builder.CreateBr(entryBlock);
-
-  builder.restoreIP(afterDataRegion);
-  llvm::BasicBlock *endDataBlock = llvm::BasicBlock::Create(
-      ctx, "acc.end_data", builder.GetInsertBlock()->getParent());
-
-  SetVector<Block *> blocks = getBlocksSortedByDominance(op.getRegion());
-  for (Block *bb : blocks) {
-    llvm::BasicBlock *llvmBB = moduleTranslation.lookupBlock(bb);
-    if (bb->isEntryBlock()) {
-      assert(sourceTerminator->getNumSuccessors() == 1 &&
-             "provided entry block has multiple successors");
-      sourceTerminator->setSuccessor(0, llvmBB);
-    }
-
-    if (failed(
-            moduleTranslation.convertBlock(*bb, bb->isEntryBlock(), builder))) {
-      return failure();
-    }
-
-    if (isa<acc::TerminatorOp, acc::YieldOp>(bb->getTerminator()))
-      builder.CreateBr(endDataBlock);
-  }
-
-  // Create call to end the data region.
-  builder.SetInsertPoint(endDataBlock);
-  accBuilder->emitMapperCall(builder.saveIP(), endMapperFunc, srcLocInfo,
-                             maptypesArg, mapnamesArg, mapperAllocas,
-                             kDefaultDevice, totalNbOperand);
-
-  return success();
-}
-
-/// Converts an OpenACC standalone data operation into LLVM IR.
-template <typename OpTy>
-static LogicalResult
-convertStandaloneDataOp(OpTy &op, llvm::IRBuilderBase &builder,
-                        LLVM::ModuleTranslation &moduleTranslation) {
-  auto enclosingFuncOp =
-      op.getOperation()->template getParentOfType<LLVM::LLVMFuncOp>();
-  llvm::Function *enclosingFunction =
-      moduleTranslation.lookupFunction(enclosingFuncOp.getName());
-
-  OpenACCIRBuilder *accBuilder = moduleTranslation.getOpenMPBuilder();
-
-  auto *srcLocInfo = createSourceLocationInfo(*accBuilder, op);
-  auto *mapperFunc = getAssociatedFunction(*accBuilder, op);
-
-  // Number of arguments in the enter_data operation.
-  unsigned totalNbOperand = op.getNumDataOperands();
-
-  llvm::LLVMContext &ctx = builder.getContext();
-
-  struct OpenACCIRBuilder::MapperAllocas mapperAllocas;
-  OpenACCIRBuilder::InsertPointTy allocaIP(
-      &enclosingFunction->getEntryBlock(),
-      enclosingFunction->getEntryBlock().getFirstInsertionPt());
-  accBuilder->createMapperAllocas(builder.saveIP(), allocaIP, totalNbOperand,
-                                  mapperAllocas);
-
-  SmallVector<uint64_t> flags;
-  SmallVector<llvm::Constant *> names;
-
-  if (failed(processDataOperands(builder, moduleTranslation, op, flags, names,
-                                 mapperAllocas)))
-    return failure();
-
-  llvm::GlobalVariable *maptypes =
-      accBuilder->createOffloadMaptypes(flags, ".offload_maptypes");
-  llvm::Value *maptypesArg = builder.CreateConstInBoundsGEP2_32(
-      llvm::ArrayType::get(llvm::Type::getInt64Ty(ctx), totalNbOperand),
-      maptypes, /*Idx0=*/0, /*Idx1=*/0);
-
-  llvm::GlobalVariable *mapnames =
-      accBuilder->createOffloadMapnames(names, ".offload_mapnames");
-  llvm::Value *mapnamesArg = builder.CreateConstInBoundsGEP2_32(
-      llvm::ArrayType::get(llvm::PointerType::getUnqual(ctx), totalNbOperand),
-      mapnames, /*Idx0=*/0, /*Idx1=*/0);
-
-  accBuilder->emitMapperCall(builder.saveIP(), mapperFunc, srcLocInfo,
-                             maptypesArg, mapnamesArg, mapperAllocas,
-                             kDefaultDevice, totalNbOperand);
-
-  return success();
-}
-
-namespace {
-
-/// Implementation of the dialect interface that converts operations belonging
-/// to the OpenACC dialect to LLVM IR.
-class OpenACCDialectLLVMIRTranslationInterface
-    : public LLVMTranslationDialectInterface {
-public:
-  using LLVMTranslationDialectInterface::LLVMTranslationDialectInterface;
-
-  /// Translates the given operation to LLVM IR using the provided IR builder
-  /// and saving the state in `moduleTranslation`.
-  LogicalResult
-  convertOperation(Operation *op, llvm::IRBuilderBase &builder,
-                   LLVM::ModuleTranslation &moduleTranslation) const final;
-};
-
-} // namespace
-
-/// Given an OpenACC MLIR operation, create the corresponding LLVM IR
-/// (including OpenACC runtime calls).
-LogicalResult OpenACCDialectLLVMIRTranslationInterface::convertOperation(
-    Operation *op, llvm::IRBuilderBase &builder,
-    LLVM::ModuleTranslation &moduleTranslation) const {
-
-  return llvm::TypeSwitch<Operation *, LogicalResult>(op)
-      .Case([&](acc::DataOp dataOp) {
-        return convertDataOp(dataOp, builder, moduleTranslation);
-      })
-      .Case([&](acc::EnterDataOp enterDataOp) {
-        return convertStandaloneDataOp<acc::EnterDataOp>(enterDataOp, builder,
-                                                         moduleTranslation);
-      })
-      .Case([&](acc::ExitDataOp exitDataOp) {
-        return convertStandaloneDataOp<acc::ExitDataOp>(exitDataOp, builder,
-                                                        moduleTranslation);
-      })
-      .Case([&](acc::UpdateOp updateOp) {
-        return convertStandaloneDataOp<acc::UpdateOp>(updateOp, builder,
-                                                      moduleTranslation);
-      })
-      .Case<acc::TerminatorOp, acc::YieldOp>([](auto op) {
-        // `yield` and `terminator` can be just omitted. The block structure was
-        // created in the function that handles their parent operation.
-        assert(op->getNumOperands() == 0 &&
-               "unexpected OpenACC terminator with operands");
-        return success();
-      })
-      .Case<acc::CreateOp, acc::CopyinOp, acc::CopyoutOp, acc::DeleteOp,
-            acc::UpdateDeviceOp, acc::GetDevicePtrOp>([](auto op) {
-        // NOP
-        return success();
-      })
-      .Default([&](Operation *op) {
-        return op->emitError("unsupported OpenACC operation: ")
-               << op->getName();
-      });
-}
-
-void mlir::registerOpenACCDialectTranslation(DialectRegistry &registry) {
-  registry.insert<acc::OpenACCDialect>();
-  registry.addExtension(+[](MLIRContext *ctx, acc::OpenACCDialect *dialect) {
-    dialect->addInterfaces<OpenACCDialectLLVMIRTranslationInterface>();
-  });
-}
-
-void mlir::registerOpenACCDialectTranslation(MLIRContext &context) {
-  DialectRegistry registry;
-  registerOpenACCDialectTranslation(registry);
-  context.appendDialectRegistry(registry);
-}

diff  --git a/mlir/test/Target/LLVMIR/openacc-llvm.mlir b/mlir/test/Target/LLVMIR/openacc-llvm.mlir
deleted file mode 100644
index c4b0b6a424417..0000000000000
--- a/mlir/test/Target/LLVMIR/openacc-llvm.mlir
+++ /dev/null
@@ -1,191 +0,0 @@
-// RUN: mlir-translate -mlir-to-llvmir -split-input-file %s | FileCheck %s
-
-llvm.func @testenterdataop(%arg0: !llvm.ptr, %arg1 : !llvm.ptr) {
-  %0 = acc.create varPtr(%arg0 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  %1 = acc.copyin varPtr(%arg1 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  acc.enter_data dataOperands(%0, %1 : !llvm.ptr, !llvm.ptr)
-  llvm.return
-}
-
-// CHECK: %struct.ident_t = type { i32, i32, i32, i32, ptr }
-
-// CHECK: @[[LOCSTR:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";{{.*}};testenterdataop;{{[0-9]*}};{{[0-9]*}};;\00", align 1
-// CHECK: @[[LOCGLOBAL:.*]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 {{[0-9]*}}, ptr @[[LOCSTR]] }, align 8
-// CHECK: @[[MAPNAME1:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00", align 1
-// CHECK: @[[MAPNAME2:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00", align 1
-// CHECK: @[[MAPTYPES:.*]] = private unnamed_addr constant [{{[0-9]*}} x i64] [i64 0, i64 1]
-// CHECK: @[[MAPNAMES:.*]] = private constant [{{[0-9]*}} x ptr] [ptr @[[MAPNAME1]], ptr @[[MAPNAME2]]]
-
-// CHECK: define void @testenterdataop(ptr %[[PTR0:.*]], ptr %[[PTR1:.*]])
-// CHECK: %[[OFFLOAD_BASEPTR:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAD_PTRS:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAD_SIZES:.*]] = alloca [{{[0-9]*}} x i64]
-
-// CHECK: %[[OFFLOAD_BASEPTR_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTR]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_BASEPTR_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAD_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAD_SIZES]], i32 0, i32 0
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAD_SIZES_GEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTR_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTR]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_BASEPTR_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAD_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAD_SIZES]], i32 0, i32 1
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAD_SIZES_GEP]]
-
-
-// CHECK: %[[OFFLOAD_BASEPTR_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTR]], i32 0, i32 0
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAD_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAD_SIZES]], i32 0, i32 0
-
-// CHECK: call void @__tgt_target_data_begin_mapper(ptr @[[LOCGLOBAL]], i64 -1, i32 2, ptr %[[OFFLOAD_BASEPTR_GEP]], ptr %[[OFFLOAD_PTRS_GEP]], ptr %[[OFFLOAD_SIZES_GEP]], ptr @[[MAPTYPES]], ptr @[[MAPNAMES]], ptr null)
-
-// CHECK: declare void @__tgt_target_data_begin_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr) #0
-
-// -----
-
-
-llvm.func @testexitdataop(%arg0: !llvm.ptr, %arg1: !llvm.ptr) {
-  %arg0_devptr = acc.getdeviceptr varPtr(%arg0 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  %1 = acc.getdeviceptr varPtr(%arg1 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  acc.exit_data dataOperands(%arg0_devptr, %1 : !llvm.ptr, !llvm.ptr)
-  acc.delete accPtr(%arg0_devptr : !llvm.ptr)
-  acc.copyout accPtr(%1 : !llvm.ptr) to varPtr(%arg1 : !llvm.ptr) varType(f32)
-  llvm.return
-}
-
-// CHECK: %struct.ident_t = type { i32, i32, i32, i32, ptr }
-
-// CHECK: @[[LOCSTR:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";{{.*}};testexitdataop;{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[LOCGLOBAL:.*]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 {{[0-9]*}}, ptr @[[LOCSTR]] }
-// CHECK: @[[MAPNAME1:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[MAPNAME2:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[MAPTYPES:.*]] = private unnamed_addr constant [{{[0-9]*}} x i64] [i64 8, i64 2]
-// CHECK: @[[MAPNAMES:.*]] = private constant [{{[0-9]*}} x ptr] [ptr @[[MAPNAME1]], ptr @[[MAPNAME2]]]
-
-// CHECK: define void @testexitdataop(ptr %[[PTR0:.*]], ptr %[[PTR1:.*]])
-// CHECK: %[[OFFLOAD_BASEPTRS:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAD_PTRS:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAS_SIZES:.*]] = alloca [{{[0-9]*}} x i64]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_BASEPTRS_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAS_SIZES_GEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_BASEPTRS_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 1
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAS_SIZES_GEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-
-// CHECK: call void @__tgt_target_data_end_mapper(ptr @[[LOCGLOBAL]], i64 -1, i32 2, ptr %[[OFFLOAD_BASEPTRS_GEP]], ptr %[[OFFLOAD_PTRS_GEP]], ptr %[[OFFLOAS_SIZES_GEP]], ptr @[[MAPTYPES]], ptr @[[MAPNAMES]], ptr null)
-
-// CHECK: declare void @__tgt_target_data_end_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr) #0
-
-// -----
-
-llvm.func @testupdateop(%arg1: !llvm.ptr) {
-  %0 = acc.update_device varPtr(%arg1 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  acc.update dataOperands(%0 : !llvm.ptr)
-  llvm.return
-}
-
-// CHECK: %struct.ident_t = type { i32, i32, i32, i32, ptr }
-
-// CHECK: [[LOCSTR:@.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";{{.*}};testupdateop;{{[0-9]*}};{{[0-9]*}};;\00", align 1
-// CHECK: [[LOCGLOBAL:@.*]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 {{[0-9]*}}, ptr [[LOCSTR]] }, align 8
-// CHECK: [[MAPNAME1:@.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00", align 1
-// CHECK: [[MAPTYPES:@.*]] = private unnamed_addr constant [{{[0-9]*}} x i64] [i64 1]
-// CHECK: [[MAPNAMES:@.*]] = private constant [{{[0-9]*}} x ptr] [ptr [[MAPNAME1]]]
-
-// CHECK: define void @testupdateop(ptr %[[SIMPLEPTR:.*]])
-// CHECK: %[[OFFLOAD_BASEPTRS:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAD_PTRS:.*]] = alloca [{{[0-9]*}} x ptr]
-// CHECK: %[[OFFLOAS_SIZES:.*]] = alloca [{{[0-9]*}} x i64]
-
-// CHECK: %[[BASEGEP:.*]] = getelementptr inbounds [1 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: store ptr %[[SIMPLEPTR]], ptr %[[BASEGEP]]
-// CHECK: %[[ARGGEP:.*]] = getelementptr inbounds [1 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: store ptr %[[SIMPLEPTR]], ptr %[[ARGGEP]]
-// CHECK: %[[SIZEGEP:.*]] = getelementptr inbounds [1 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[SIZEGEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [1 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [1 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [1 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-
-// CHECK: call void @__tgt_target_data_update_mapper(ptr [[LOCGLOBAL]], i64 -1, i32 1, ptr %[[OFFLOAD_BASEPTRS_GEP]], ptr %[[OFFLOAD_PTRS_GEP]], ptr %[[OFFLOAS_SIZES_GEP]], ptr [[MAPTYPES]], ptr [[MAPNAMES]], ptr null)
-
-// CHECK: declare void @__tgt_target_data_update_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr) #0
-
-// -----
-
-llvm.func @testdataop(%arg0: !llvm.ptr, %arg1: !llvm.ptr, %arg2: !llvm.ptr) {
-  
-  %0 = acc.copyin varPtr(%arg0 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  %1 = acc.create varPtr(%arg1 : !llvm.ptr) varType(f32) -> !llvm.ptr
-  acc.data dataOperands(%0, %1 : !llvm.ptr, !llvm.ptr) {
-    %9 = llvm.mlir.constant(2 : i32) : i32
-    llvm.store %9, %arg2 : i32, !llvm.ptr
-    acc.terminator
-  }
-  acc.copyout accPtr(%0 : !llvm.ptr) to varPtr(%arg0 : !llvm.ptr) varType(f32)
-  acc.copyout accPtr(%1 : !llvm.ptr) to varPtr(%arg1 : !llvm.ptr) varType(f32)
-  llvm.return
-}
-
-// CHECK: %struct.ident_t = type { i32, i32, i32, i32, ptr }
-// CHECK: @[[LOCSTR:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";{{.*}};testdataop;{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[LOCGLOBAL:.*]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 {{[0-9]*}}, ptr @[[LOCSTR]] }
-// CHECK: @[[MAPNAME1:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[MAPNAME2:.*]] = private unnamed_addr constant [{{[0-9]*}} x i8] c";unknown;{{.*}};{{[0-9]*}};{{[0-9]*}};;\00"
-// CHECK: @[[MAPTYPES:.*]] = private unnamed_addr constant [{{[0-9]*}} x i64] [i64 8193, i64 8192]
-// CHECK: @[[MAPNAMES:.*]] = private constant [{{[0-9]*}} x ptr] [ptr @[[MAPNAME1]], ptr @[[MAPNAME2]]]
-
-// CHECK: define void @testdataop(ptr %[[PTR0:.*]], ptr %[[PTR1:.*]], ptr %[[PTR2:.*]])
-// CHECK: %[[OFFLOAD_BASEPTRS:.*]] = alloca [{{[0-9]*}} x ptr], align 8
-// CHECK: %[[OFFLOAD_PTRS:.*]] = alloca [{{[0-9]*}} x ptr], align 8
-// CHECK: %[[OFFLOAS_SIZES:.*]] = alloca [{{[0-9]*}} x i64], align 8
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_BASEPTRS_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: store ptr %[[PTR0]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAS_SIZES_GEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_BASEPTRS_GEP]]
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 1
-// CHECK: store ptr %[[PTR1]], ptr %[[OFFLOAD_PTRS_GEP]]
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 1
-// CHECK: store i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64), ptr %[[OFFLOAS_SIZES_GEP]]
-
-// CHECK: %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK: %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-// CHECK: call void @__tgt_target_data_begin_mapper(ptr @[[LOCGLOBAL]], i64 -1, i32 2, ptr %[[OFFLOAD_BASEPTRS_GEP]], ptr %[[OFFLOAD_PTRS_GEP]], ptr %[[OFFLOAS_SIZES_GEP]], ptr @[[MAPTYPES]], ptr @[[MAPNAMES]], ptr null)
-// CHECK: br label %acc.data
-
-// CHECK:      acc.data:
-// CHECK-NEXT:   store i32 2, ptr %{{.*}}
-// CHECK-NEXT:   br label %acc.end_data
-
-// CHECK: acc.end_data:
-// CHECK:   %[[OFFLOAD_BASEPTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_BASEPTRS]], i32 0, i32 0
-// CHECK:   %[[OFFLOAD_PTRS_GEP:.*]] = getelementptr inbounds [2 x ptr], ptr %[[OFFLOAD_PTRS]], i32 0, i32 0
-// CHECK:   %[[OFFLOAS_SIZES_GEP:.*]] = getelementptr inbounds [2 x i64], ptr %[[OFFLOAS_SIZES]], i32 0, i32 0
-// CHECK:   call void @__tgt_target_data_end_mapper(ptr @[[LOCGLOBAL]], i64 -1, i32 2, ptr %[[OFFLOAD_BASEPTRS_GEP]], ptr %[[OFFLOAD_PTRS_GEP]], ptr %[[OFFLOAS_SIZES_GEP]], ptr @[[MAPTYPES]], ptr @[[MAPNAMES]], ptr null)
-
-// CHECK: declare void @__tgt_target_data_begin_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
-// CHECK: declare void @__tgt_target_data_end_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)

diff  --git a/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Support/BUILD.bazel b/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Support/BUILD.bazel
index 831bdd09f9549..c40b59926ef67 100644
--- a/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Support/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Support/BUILD.bazel
@@ -52,7 +52,6 @@ cc_library(
         "//mlir:IR",
         "//mlir:LLVMDialect",
         "//mlir:LLVMToLLVMIRTranslation",
-        "//mlir:OpenACCToLLVMIRTranslation",
         "//mlir:OpenACCTransforms",
         "//mlir:OpenMPToLLVMIRTranslation",
         "//mlir:OpenMPTransforms",

diff  --git a/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel b/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
index ecde032f32fb2..d6d6224d28387 100644
--- a/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
@@ -77,7 +77,6 @@ cc_library(
         "//mlir:MemRefDialect",
         "//mlir:NVVMDialect",
         "//mlir:OpenACCDialect",
-        "//mlir:OpenACCToLLVMIRTranslation",
         "//mlir:OpenMPDialect",
         "//mlir:Pass",
         "//mlir:SCFDialect",

diff  --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index 74771db2af525..96e2b9b466ecc 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -9380,27 +9380,6 @@ cc_library(
     ],
 )
 
-cc_library(
-    name = "OpenACCToLLVMIRTranslation",
-    srcs = glob(["lib/Target/LLVMIR/Dialect/OpenACC/*.cpp"]),
-    hdrs = glob(["include/mlir/Target/LLVMIR/Dialect/OpenACC/*.h"]),
-    includes = ["include"],
-    deps = [
-        ":Analysis",
-        ":IR",
-        ":LLVMDialect",
-        ":OpenACCDialect",
-        ":OpenMPCommon",
-        ":Support",
-        ":ToLLVMIRTranslation",
-        ":TransformUtils",
-        "//llvm:Core",
-        "//llvm:FrontendOpenMP",
-        "//llvm:Support",
-        "//llvm:TargetParser",
-    ],
-)
-
 cc_library(
     name = "OpenMPToLLVMIRTranslation",
     srcs = glob(["lib/Target/LLVMIR/Dialect/OpenMP/*.cpp"]),
@@ -9471,7 +9450,6 @@ cc_library(
         ":LLVMIRToNVVMTranslation",
         ":LLVMToLLVMIRTranslation",
         ":NVVMToLLVMIRTranslation",
-        ":OpenACCToLLVMIRTranslation",
         ":OpenMPToLLVMIRTranslation",
         ":PtrToLLVMIRTranslation",
         ":ROCDLToLLVMIRTranslation",
@@ -10071,7 +10049,6 @@ cc_library(
         ":IR",
         ":LLVMDialect",
         ":LLVMToLLVMIRTranslation",
-        ":OpenACCToLLVMIRTranslation",
         ":OpenMPToLLVMIRTranslation",
         ":ParseUtilities",
         ":Parser",
@@ -10266,7 +10243,6 @@ cc_binary(
         ":LLVMDialect",
         ":LLVMToLLVMIRTranslation",
         ":MlirJitRunner",
-        ":OpenACCToLLVMIRTranslation",
         ":OpenMPToLLVMIRTranslation",
         ":ToLLVMIRTranslation",
         "//llvm:AsmParser",


        


More information about the flang-commits mailing list