MLIR
22.0.0git
include
mlir
Dialect
Arith
Transforms
WideIntEmulationConverter.h
Go to the documentation of this file.
1
//===- WideIntEmulationConverter.h - Type Converter for WIE -----*- 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
9
#ifndef MLIR_DIALECT_ARITH_WIDE_INT_EMULATION_CONVERTER_H_
10
#define MLIR_DIALECT_ARITH_WIDE_INT_EMULATION_CONVERTER_H_
11
12
#include "
mlir/Transforms/DialectConversion.h
"
13
14
namespace
mlir::arith
{
15
/// Converts integer types that are too wide for the target by splitting them in
16
/// two halves and thus turning into supported ones, i.e., i2*N --> iN, where N
17
/// is the widest integer bitwidth supported by the target.
18
/// Currently, we only handle power-of-two integer types and support conversions
19
/// of integers twice as wide as the maximum supported by the target. Wide
20
/// integers are represented as vectors, e.g., i64 --> vector<2xi32>, where the
21
/// first element is the low half of the original integer, and the second
22
/// element the high half.
23
class
WideIntEmulationConverter
:
public
TypeConverter
{
24
public
:
25
explicit
WideIntEmulationConverter
(
unsigned
widestIntSupportedByTarget);
26
27
unsigned
getMaxTargetIntBitWidth
()
const
{
return
maxIntWidth; }
28
29
private
:
30
unsigned
maxIntWidth;
31
};
32
}
// namespace mlir::arith
33
34
#endif
// MLIR_DIALECT_ARITH_WIDE_INT_EMULATION_CONVERTER_H_
DialectConversion.h
TypeConverter
mlir::arith::WideIntEmulationConverter::getMaxTargetIntBitWidth
unsigned getMaxTargetIntBitWidth() const
Definition
WideIntEmulationConverter.h:27
mlir::arith::WideIntEmulationConverter::WideIntEmulationConverter
WideIntEmulationConverter(unsigned widestIntSupportedByTarget)
Definition
EmulateWideInt.cpp:1228
mlir::arith
Definition
AttrToLLVMConverter.h:20
Generated on
for MLIR by
1.14.0