|
MLIR 22.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/IR/Builders.h"#include "mlir/IR/Matchers.h"#include "mlir/IR/TypeUtilities.h"#include "mlir/Transforms/GreedyPatternRewriteDriver.h"#include "mlir/Dialect/Math/Transforms/Passes.h.inc"Go to the source code of this file.
Classes | |
| class | mlir::math::impl::MathExpandOpsPassBase< DerivedT > |
Namespaces | |
| namespace | mlir |
| Include the generated interface declarations. | |
| namespace | mlir::math |
| namespace | mlir::math::impl |
Macros | |
| #define | GEN_PASS_DEF_MATHEXPANDOPSPASS |
Functions | |
| std::unique_ptr<::mlir::Pass > | mlir::math::impl::createMathExpandOpsPass () |
| std::unique_ptr<::mlir::Pass > | mlir::math::impl::createMathExpandOpsPass (MathExpandOpsPassOptions options) |
| std::unique_ptr<::mlir::Pass > | mlir::math::createMathExpandOpsPass () |
| std::unique_ptr<::mlir::Pass > | mlir::math::createMathExpandOpsPass (MathExpandOpsPassOptions options) |
| static Value | createFloatConst (Location loc, Type type, APFloat value, OpBuilder &b) |
| Create a float constant. | |
| 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. | |
| 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). | |
| 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 LogicalResult | convertClampfOp (math::ClampFOp op, PatternRewriter &rewriter) |
| #define GEN_PASS_DEF_MATHEXPANDOPSPASS |
Definition at line 24 of file ExpandOps.cpp.
|
static |
Definition at line 175 of file ExpandOps.cpp.
References add, b, createFloatConst(), mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 159 of file ExpandOps.cpp.
References add, b, createFloatConst(), mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 191 of file ExpandOps.cpp.
References add, b, createFloatConst(), div, mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 226 of file ExpandOps.cpp.
References b, createFloatConst(), createTruncatedFPValue(), mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 669 of file ExpandOps.cpp.
References mlir::RewriterBase::replaceOpWithNewOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 91 of file ExpandOps.cpp.
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 472 of file ExpandOps.cpp.
References add, createIntConst(), mlir::getElementTypeOrSelf(), mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 400 of file ExpandOps.cpp.
References b, createFloatConst(), mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 209 of file ExpandOps.cpp.
References add, b, mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 255 of file ExpandOps.cpp.
References b, createFloatConst(), mlir::getElementTypeOrSelf(), mlir::Value::getType(), mlir::m_Constant(), mlir::m_ConstantInt(), mlir::matchPattern(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 326 of file ExpandOps.cpp.
References b, createFloatConst(), div, mlir::getElementTypeOrSelf(), mlir::Value::getType(), mlir::m_ConstantFloat(), mlir::matchPattern(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 515 of file ExpandOps.cpp.
References b, createFloatConst(), createIntConst(), mlir::getElementTypeOrSelf(), mlir::Builder::getIntegerType(), mlir::Type::getIntOrFloatBitWidth(), mlir::Value::getType(), mlir::RewriterBase::notifyMatchFailure(), mlir::RewriterBase::replaceOp(), result, and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 412 of file ExpandOps.cpp.
References add, b, createFloatConst(), createIntConst(), createTruncatedFPValue(), mlir::getElementTypeOrSelf(), mlir::Value::getType(), mlir::Type::isF32(), mlir::RewriterBase::notifyMatchFailure(), mlir::RewriterBase::replaceOp(), result, and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 647 of file ExpandOps.cpp.
References createFloatConst(), mlir::getElementTypeOrSelf(), mlir::Value::getType(), mlir::RewriterBase::replaceOpWithNewOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 75 of file ExpandOps.cpp.
References b, and mlir::Value::getType().
Referenced by mlir::math::populateExpansionPatterns().
|
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 114 of file ExpandOps.cpp.
References createFloatConst(), mlir::RewriterBase::replaceOpWithNewOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
|
static |
Definition at line 147 of file ExpandOps.cpp.
References b, div, mlir::Value::getType(), mlir::RewriterBase::replaceOp(), and success().
Referenced by mlir::math::populateExpansionPatterns().
Create a float constant.
Definition at line 29 of file ExpandOps.cpp.
References b, and mlir::getElementTypeOrSelf().
Referenced by convertAcoshOp(), convertAsinhOp(), convertAtanhOp(), convertCeilOp(), convertExp2fOp(), convertFPowIOp(), convertPowfOp(), convertRoundEvenOp(), convertRoundOp(), convertRsqrtOp(), convertTanhOp(), and mlir::math::impl::MathExpandOpsPassBase< DerivedT >::~MathExpandOpsPassBase().
Definition at line 45 of file ExpandOps.cpp.
Create an integer constant.
Definition at line 51 of file ExpandOps.cpp.
Referenced by convertCtlzOp(), convertRoundEvenOp(), and convertRoundOp().
|
static |
Definition at line 62 of file ExpandOps.cpp.
Referenced by convertCeilOp(), and convertRoundOp().