9#ifndef MLIR_CONVERSION_OPENACCTOLLVM_ACCTOLLVM_H
10#define MLIR_CONVERSION_OPENACCTOLLVM_ACCTOLLVM_H
18class ConversionTarget;
29#define GEN_PASS_DECL_CONVERTACCTOLLVMPASS
30#include "mlir/Conversion/Passes.h.inc"
40 LLVMTypeConverter &converter, RewritePatternSet &patterns,
41 const acc::ACCRuntimeCallConfig &config = {});
Conversion from types to the LLVM IR dialect.
Operation is the basic unit of execution within MLIR.
The abstract base pass class.
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
Include the generated interface declarations.
void populateACCAtomicPatterns(const LLVMTypeConverter &converter, RewritePatternSet &patterns, acc::OpenACCSupport &accSupport, ACCAtomicLoadAddressCallback getLoadAddress={})
Populate patterns that lower OpenACC atomic operations to LLVM dialect.
void configureACCExecutableDirectiveConversionLegality(ConversionTarget &target)
Configure conversion legality for OpenACC executable directives lowered to runtime calls.
void populateACCExecutableDirectivePatterns(LLVMTypeConverter &converter, RewritePatternSet &patterns, const acc::ACCRuntimeCallConfig &config={})
Populate patterns that lower OpenACC executable directives (init, shutdown, wait, set) to LLVM runtim...
std::function< Value(Operation *)> ACCAtomicLoadAddressCallback
Returns the address operand of a dialect-specific load operation.
void configureACCAtomicConversionLegality(ConversionTarget &target)
Configure conversion legality for OpenACC atomic operations.