MLIR
21.0.0git
|
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Math/IR/Math.h"
#include "mlir/Dialect/Math/Transforms/Passes.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/TypeUtilities.h"
#include "mlir/Transforms/DialectConversion.h"
Go to the source code of this file.
Functions | |
static Value | createFloatConst (Location loc, Type type, APFloat value, OpBuilder &b) |
Create a float constant. More... | |
static Value | createFloatConst (Location loc, Type type, double value, OpBuilder &b) |
static Value | createIntConst (Location loc, Type type, int64_t value, OpBuilder &b) |
Create an integer constant. More... | |
static Value | createTruncatedFPValue (Value operand, ImplicitLocOpBuilder &b) |
static LogicalResult | convertSinhOp (math::SinhOp op, PatternRewriter &rewriter) |
static LogicalResult | convertCoshOp (math::CoshOp op, PatternRewriter &rewriter) |
static LogicalResult | convertTanhOp (math::TanhOp op, PatternRewriter &rewriter) |
Expands tanh op into 1-exp^{-2x} / 1+exp^{-2x} To avoid overflow we exploit the reflection symmetry tanh(-x) = -tanh(x) . More... | |
static LogicalResult | convertTanOp (math::TanOp op, PatternRewriter &rewriter) |
static LogicalResult | convertAsinhOp (math::AsinhOp op, PatternRewriter &rewriter) |
static LogicalResult | convertAcoshOp (math::AcoshOp op, PatternRewriter &rewriter) |
static LogicalResult | convertAtanhOp (math::AtanhOp op, PatternRewriter &rewriter) |
static LogicalResult | convertFmaFOp (math::FmaOp op, PatternRewriter &rewriter) |
static LogicalResult | convertCeilOp (math::CeilOp op, PatternRewriter &rewriter) |
static LogicalResult | convertFPowIOp (math::FPowIOp op, PatternRewriter &rewriter) |
static LogicalResult | convertPowfOp (math::PowFOp op, PatternRewriter &rewriter) |
static LogicalResult | convertExp2fOp (math::Exp2Op op, PatternRewriter &rewriter) |
static LogicalResult | convertRoundOp (math::RoundOp op, PatternRewriter &rewriter) |
static LogicalResult | convertCtlzOp (math::CountLeadingZerosOp op, PatternRewriter &rewriter) |
static LogicalResult | convertRoundEvenOp (math::RoundEvenOp op, PatternRewriter &rewriter) |
static LogicalResult | convertRsqrtOp (math::RsqrtOp op, PatternRewriter &rewriter) |
|
static |
Definition at line 172 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandAcoshPattern().
|
static |
Definition at line 156 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandAsinhPattern().
|
static |
Definition at line 188 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandAtanhPattern().
|
static |
Definition at line 223 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), createTruncatedFPValue(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandCeilFPattern().
|
static |
Definition at line 88 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandCoshPattern().
|
static |
Definition at line 427 of file ExpandPatterns.cpp.
References mlir::OpBuilder::create(), createIntConst(), mlir::getElementTypeOrSelf(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandCtlzPattern().
|
static |
Definition at line 355 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandExp2FPattern().
|
static |
Definition at line 206 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandFmaFPattern().
|
static |
Definition at line 246 of file ExpandPatterns.cpp.
References mlir::presburger::abs(), mlir::ImplicitLocOpBuilder::create(), mlir::OpBuilder::create(), createFloatConst(), mlir::getElementTypeOrSelf(), mlir::Value::getType(), getZero(), mlir::m_Constant(), mlir::m_ConstantInt(), mlir::matchPattern(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandFPowIPattern().
|
static |
Definition at line 315 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandPowFPattern().
|
static |
Definition at line 470 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), createIntConst(), mlir::getElementTypeOrSelf(), mlir::Builder::getIntegerType(), mlir::Type::getIntOrFloatBitWidth(), mlir::RewriterBase::notifyMatchFailure(), mlir::RewriterBase::replaceOp(), and mlir::presburger::round().
Referenced by mlir::populateExpandRoundEvenPattern().
|
static |
Definition at line 367 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), createIntConst(), createTruncatedFPValue(), mlir::getElementTypeOrSelf(), mlir::Builder::getI32Type(), mlir::Value::getType(), mlir::Type::isF32(), mlir::RewriterBase::notifyMatchFailure(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandRoundFPattern().
|
static |
Definition at line 602 of file ExpandPatterns.cpp.
References mlir::OpBuilder::create(), createFloatConst(), mlir::getElementTypeOrSelf(), and mlir::RewriterBase::replaceOpWithNewOp().
Referenced by mlir::populateExpandRsqrtPattern().
|
static |
Definition at line 72 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), createFloatConst(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandSinhPattern().
|
static |
Expands tanh op into 1-exp^{-2x} / 1+exp^{-2x} To avoid overflow we exploit the reflection symmetry tanh(-x) = -tanh(x)
.
We compute a "signs" value which is -1 if input is negative and +1 if input is positive. Then multiply the input by this value, guaranteeing that the result is positive, which also guarantees exp^{-2x * sign(x)}
is in (0, 1]. Expand the computation on the input x * sign(x)
, then multiply the result by sign(x)
to retain sign of the real result.
Definition at line 111 of file ExpandPatterns.cpp.
References mlir::OpBuilder::create(), createFloatConst(), and mlir::RewriterBase::replaceOpWithNewOp().
Referenced by mlir::populateExpandTanhPattern().
|
static |
Definition at line 144 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), mlir::Value::getType(), and mlir::RewriterBase::replaceOp().
Referenced by mlir::populateExpandTanPattern().
Create a float constant.
Definition at line 26 of file ExpandPatterns.cpp.
References mlir::OpBuilder::create(), mlir::DenseElementsAttr::get(), mlir::getElementTypeOrSelf(), and mlir::Builder::getFloatAttr().
Referenced by convertAcoshOp(), convertAsinhOp(), convertAtanhOp(), convertCeilOp(), convertCoshOp(), convertExp2fOp(), convertFPowIOp(), convertPowfOp(), convertRoundEvenOp(), convertRoundOp(), convertRsqrtOp(), convertSinhOp(), convertTanhOp(), and createFloatConst().
Definition at line 42 of file ExpandPatterns.cpp.
References createFloatConst().
Create an integer constant.
Definition at line 48 of file ExpandPatterns.cpp.
References mlir::OpBuilder::create(), mlir::DenseElementsAttr::get(), mlir::getElementTypeOrSelf(), and mlir::Builder::getIntegerAttr().
Referenced by convertCtlzOp(), convertRoundEvenOp(), and convertRoundOp().
|
static |
Definition at line 59 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), mlir::Builder::getI64Type(), and mlir::Value::getType().
Referenced by convertCeilOp(), and convertRoundOp().