[mlir][math] Added math::tan operation.Differential Revision: https://reviews.llvm.org/D129539
[mlir][math] Lower atan to libmDifferential Revision: https://reviews.llvm.org/D128454
[mlir][math] Support vector type by erf and round libm loweringerf and round op are able to lowered to libm supporting vector type as other math operations.Reviewed By: ftynseDifferential Revis
[mlir][math] Support vector type by erf and round libm loweringerf and round op are able to lowered to libm supporting vector type as other math operations.Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D127934
show more ...
[mlir][math] Lower cos,sin to libmLower math.cos and math.sin to libmReviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D128028
[mlir] (NFC) Clean up bazel and CMake target namesAll dialect targets in bazel have been named *Dialect and all dialecttargets in CMake have been named MLIR*Dialect.
[MLIR][Math] Add round operationIntroduce RoundOp in the math dialect. The operation rounds the operand to thenearest integer value in floating-point format. RoundOp lowers to LLVMintrinsics 'llv
[MLIR][Math] Add round operationIntroduce RoundOp in the math dialect. The operation rounds the operand to thenearest integer value in floating-point format. RoundOp lowers to LLVMintrinsics 'llvm.intr.round' or as a function call to libm (round or roundf).Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D127286
[mlir][math] Promote (b)f16 to f32 when lowering to libm callslibm doesn't have overloads for the small types, so promote them to abigger type and use the f32 function.Differential Revision: htt
[mlir][math] Promote (b)f16 to f32 when lowering to libm callslibm doesn't have overloads for the small types, so promote them to abigger type and use the f32 function.Differential Revision: https://reviews.llvm.org/D125093
[mlir:NFC] Remove the forward declaration of FuncOp in the mlir namespaceFuncOp has been moved to the `func` namespace for a little over a month, theusing directive can be dropped now.
[mlir] Trim a huge number of unnecessary dependencies on the Func dialectThe Func has a large number of legacy dependencies carried over from the oldStandard dialect, which was pervasive and conta
[mlir] Trim a huge number of unnecessary dependencies on the Func dialectThe Func has a large number of legacy dependencies carried over from the oldStandard dialect, which was pervasive and contained a large number of variedoperations. With the split of the standard dialect and its demise, a lot of lingeringdead dependencies have survived to the Func dialect. This commit removes alarge majority of then, greatly reducing the dependence surface area of theFunc dialect.
[mlir] Rename the Standard dialect to the Func dialectThe last remaining operations in the standard dialect all revolve aroundFuncOp/function related constructs. This patch simply handles the init
[mlir] Rename the Standard dialect to the Func dialectThe last remaining operations in the standard dialect all revolve aroundFuncOp/function related constructs. This patch simply handles the initialrenaming (which by itself is already huge), but there are a large numberof cleanups unlocked/necessary afterwards:* Removing a bunch of unnecessary dependencies on Func* Cleaning up the From/ToStandard conversion passes* Preparing for the move of FuncOp to the Func dialectSee the discussion at https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061Differential Revision: https://reviews.llvm.org/D120624
[mlir][vector][NFC] Split into IR, Transforms and UtilsThis reduces the dependencies of the MLIRVector target and makes the dialect consistent with other dialects.Differential Revision: https://r
[mlir][vector][NFC] Split into IR, Transforms and UtilsThis reduces the dependencies of the MLIRVector target and makes the dialect consistent with other dialects.Differential Revision: https://reviews.llvm.org/D118533
[mlir] Add more missing dependencies after D118062These used to be covered transitively, but now need to be explicit.
[mlir] Convert OpTrait::FunctionLike to FunctionOpInterfaceThis commit refactors the FunctionLike trait into an interface (FunctionOpInterface).FunctionLike as it is today is already a pseudo-inte
[mlir] Convert OpTrait::FunctionLike to FunctionOpInterfaceThis commit refactors the FunctionLike trait into an interface (FunctionOpInterface).FunctionLike as it is today is already a pseudo-interface, with many users checking thepresence of the trait and then manually into functionality implemented in thefunction_like_impl namespace. By transitioning to an interface, these accesses are muchcleaner (ideally with no direct calls to the impl namespace outside of the implementationof the derived function operations, e.g. for parsing/printing utilities).I've tried to maintain as much compatability with the current state as possible, whilealso trying to clean up as much of the cruft as possible. The general migration plan forcurrent users of FunctionLike is as follows:* function_like_impl -> function_interface_implRealistically most user calls should remove references to functions within this namespaceoutside of a vary narrow set (e.g. parsing/printing utilities). Calls to the attribute nameaccessors should be migrated to the `FunctionOpInterface::` equivalent, most everythingelse should be updated to be driven through an instance of the interface.* OpTrait::FunctionLike -> FunctionOpInterface`hasTrait` checks will need to be moved to isa, along with the other various Trait vsInterface API differences.* populateFunctionLikeTypeConversionPattern -> populateFunctionOpInterfaceTypeConversionPatternFixes #52917Differential Revision: https://reviews.llvm.org/D117272
[mlir] Support multi-dimensional vectors in MathToLibm conversion.Differential Revision: https://reviews.llvm.org/D113969
[MLIR][Math] Add erf to math dialectAdd math.erf lowering to libm call.Add math.erf polynomial approximation.Reviewed By: silvas, ezhulenevDifferential Revision: https://reviews.llvm.org/D1122
[MLIR][Math] Add erf to math dialectAdd math.erf lowering to libm call.Add math.erf polynomial approximation.Reviewed By: silvas, ezhulenevDifferential Revision: https://reviews.llvm.org/D112200
[MLIR] Replace std ops with arith dialect opsPrecursor: https://reviews.llvm.org/D110200Removed redundant ops from the standard dialect that were moved to the`arith` or `math` dialects.Renamed
[MLIR] Replace std ops with arith dialect opsPrecursor: https://reviews.llvm.org/D110200Removed redundant ops from the standard dialect that were moved to the`arith` or `math` dialects.Renamed all instances of operations in the codebase and in tests.Reviewed By: rriddle, jpienaarDifferential Revision: https://reviews.llvm.org/D110797
[mlir] Use interfaces in MathToLibmPreviously, this assumed use of ModuleOp and FuncOp. There is no need torestrict this, and using interfaces allows these patterns to be usedduring dialect conve
[mlir] Use interfaces in MathToLibmPreviously, this assumed use of ModuleOp and FuncOp. There is no need torestrict this, and using interfaces allows these patterns to be usedduring dialect conversion to LLVM.Some assertions were removed due to inconsistent implementation ofFunctionLikeOps.Differential Revision: https://reviews.llvm.org/D103447
[mlir] Add patterns to lower Math operations to LLVM based libm calls.Some Math operations do not have an equivalent in LLVM. In these cases,allow a low priority fallback of calling the libm funct
[mlir] Add patterns to lower Math operations to LLVM based libm calls.Some Math operations do not have an equivalent in LLVM. In these cases,allow a low priority fallback of calling the libm functions. This is togive functionality and is not a performant option.Differential Revision: https://reviews.llvm.org/D100367