MLIR
20.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 | convertFloorOp (math::FloorOp 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.
Referenced by mlir::populateExpandAcoshPattern().
|
static |
Definition at line 156 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandAsinhPattern().
|
static |
Definition at line 188 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandAtanhPattern().
|
static |
Definition at line 248 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandCeilFPattern().
|
static |
Definition at line 88 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandCoshPattern().
|
static |
Definition at line 444 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandCtlzPattern().
|
static |
Definition at line 372 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandExp2FPattern().
|
static |
Definition at line 223 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandFloorFPattern().
|
static |
Definition at line 206 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandFmaFPattern().
|
static |
Definition at line 271 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandFPowIPattern().
|
static |
Definition at line 340 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandPowFPattern().
|
static |
Definition at line 487 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandRoundEvenPattern().
|
static |
Definition at line 384 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandRoundFPattern().
|
static |
Definition at line 619 of file ExpandPatterns.cpp.
Referenced by mlir::populateExpandRsqrtPattern().
|
static |
Definition at line 72 of file ExpandPatterns.cpp.
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.
Referenced by mlir::populateExpandTanhPattern().
|
static |
Definition at line 144 of file ExpandPatterns.cpp.
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 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().
|
static |
Definition at line 59 of file ExpandPatterns.cpp.
References mlir::ImplicitLocOpBuilder::create(), mlir::Builder::getI64Type(), and mlir::Value::getType().