19#define GEN_PASS_DEF_CONVERTACCTOLLVMPASS
20#include "mlir/Conversion/Passes.h.inc"
26struct ConvertACCToLLVMPass
27 :
public impl::ConvertACCToLLVMPassBase<ConvertACCToLLVMPass> {
30 void runOnOperation()
override;
34void ConvertACCToLLVMPass::runOnOperation() {
35 ModuleOp module = getOperation();
39 arith::populateArithToLLVMConversionPatterns(converter, patterns);
45 acc::ACCRuntimeCallConfig runtimeConfig;
51 if (
failed(applyPartialConversion(module,
target, std::move(patterns))))
void populateDialectIdentityDeviceTypeMapping(ACCRuntimeCallConfig &config)
Install a device-type mapping that uses OpenACC dialect enum ordinals as the runtime encoding.
void populateControlFlowToLLVMConversionPatterns(const LLVMTypeConverter &converter, RewritePatternSet &patterns)
Collect the patterns to convert from the ControlFlow dialect to LLVM.
Include the generated interface declarations.
void populateFuncToLLVMConversionPatterns(const LLVMTypeConverter &converter, RewritePatternSet &patterns, SymbolTableCollection *symbolTables=nullptr)
Collect the patterns to convert from the Func dialect to LLVM.
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...