MLIR
22.0.0git
include
mlir
Conversion
NVGPUToNVVM
NVGPUToNVVM.h
Go to the documentation of this file.
1
//===- NVGPUToNVVMPass.h - Convert NVGPU to NVVM dialect --------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
#ifndef MLIR_CONVERSION_NVGPUTONVVM_NVGPUTONVVMPASS_H_
9
#define MLIR_CONVERSION_NVGPUTONVVM_NVGPUTONVVMPASS_H_
10
11
#include <memory>
12
13
namespace
mlir
{
14
15
class
Attribute
;
16
class
LLVMTypeConverter
;
17
class
MLIRContext
;
18
class
MemRefType;
19
class
Pass
;
20
class
RewritePatternSet
;
21
class
TypeConverter;
22
23
#define GEN_PASS_DECL_CONVERTNVGPUTONVVMPASS
24
#include "mlir/Conversion/Passes.h.inc"
25
26
namespace
nvgpu
{
27
class
MBarrierGroupType;
28
29
/// Returns the memory space attribute of the mbarrier object.
30
Attribute
getMbarrierMemorySpace
(
MLIRContext
*context,
31
MBarrierGroupType barrierType);
32
33
/// Return the memref type that can be used to represent an mbarrier object.
34
MemRefType
getMBarrierMemrefType
(
MLIRContext
*context,
35
MBarrierGroupType barrierType);
36
}
// namespace nvgpu
37
38
namespace
nvgpu
{
39
/// Remap common GPU memory spaces (Workgroup, Private, etc) to LLVM address
40
/// spaces.
41
void
populateCommonGPUTypeAndAttributeConversions
(
TypeConverter
&typeConverter);
42
}
// namespace nvgpu
43
44
void
populateNVGPUToNVVMConversionPatterns
(
const
LLVMTypeConverter &converter,
45
RewritePatternSet &
patterns
);
46
}
// namespace mlir
47
48
#endif
// MLIR_CONVERSION_NVGPUTONVVM_NVGPUTONVVMPASS_H_
TypeConverter
mlir::Attribute
Attributes are known-constant values of operations.
Definition
Attributes.h:25
mlir::LLVMTypeConverter
Conversion from types to the LLVM IR dialect.
Definition
TypeConverter.h:35
mlir::MLIRContext
MLIRContext is the top-level object for a collection of MLIR operations.
Definition
MLIRContext.h:63
mlir::Pass
The abstract base pass class.
Definition
Pass.h:52
mlir::RewritePatternSet
Definition
PatternMatch.h:822
mlir::nvgpu
Definition
NVGPUToNVVM.h:26
mlir::nvgpu::populateCommonGPUTypeAndAttributeConversions
void populateCommonGPUTypeAndAttributeConversions(TypeConverter &typeConverter)
Remap common GPU memory spaces (Workgroup, Private, etc) to LLVM address spaces.
Definition
NVGPUToNVVM.cpp:1711
mlir::nvgpu::getMBarrierMemrefType
MemRefType getMBarrierMemrefType(MLIRContext *context, MBarrierGroupType barrierType)
Return the memref type that can be used to represent an mbarrier object.
mlir::nvgpu::getMbarrierMemorySpace
Attribute getMbarrierMemorySpace(MLIRContext *context, MBarrierGroupType barrierType)
Returns the memory space attribute of the mbarrier object.
mlir
Include the generated interface declarations.
Definition
AliasAnalysis.h:19
mlir::populateNVGPUToNVVMConversionPatterns
void populateNVGPUToNVVMConversionPatterns(const LLVMTypeConverter &converter, RewritePatternSet &patterns)
Definition
NVGPUToNVVM.cpp:1731
mlir::patterns
const FrozenRewritePatternSet & patterns
Definition
GreedyPatternRewriteDriver.h:283
Generated on
for MLIR by
1.14.0