@@ -1776,90 +1776,93 @@ void mlir::populatePolynomialApproximateErfcPattern(
1776
1776
template <typename OpType>
1777
1777
static void
1778
1778
populateMathF32ExpansionPattern (RewritePatternSet &patterns,
1779
- llvm::function_ref<bool (StringRef)> predicate) {
1779
+ llvm::function_ref<bool (StringRef)> predicate,
1780
+ PatternBenefit benefit) {
1780
1781
if (predicate (OpType::getOperationName ())) {
1781
- patterns.add <ReuseF32Expansion<OpType>>(patterns.getContext ());
1782
+ patterns.add <ReuseF32Expansion<OpType>>(patterns.getContext (), benefit );
1782
1783
}
1783
1784
}
1784
1785
1785
1786
void mlir::populateMathF32ExpansionPatterns (
1786
- RewritePatternSet &patterns,
1787
- llvm::function_ref< bool (StringRef)> predicate ) {
1788
- populateMathF32ExpansionPattern<math::AcosOp>(patterns, predicate);
1789
- populateMathF32ExpansionPattern<math::AcoshOp>(patterns, predicate);
1790
- populateMathF32ExpansionPattern<math::AsinOp>(patterns, predicate);
1791
- populateMathF32ExpansionPattern<math::AsinhOp>(patterns, predicate);
1792
- populateMathF32ExpansionPattern<math::AtanOp>(patterns, predicate);
1793
- populateMathF32ExpansionPattern<math::Atan2Op>(patterns, predicate);
1794
- populateMathF32ExpansionPattern<math::AtanhOp>(patterns, predicate);
1795
- populateMathF32ExpansionPattern<math::CbrtOp>(patterns, predicate);
1796
- populateMathF32ExpansionPattern<math::CosOp>(patterns, predicate);
1797
- populateMathF32ExpansionPattern<math::CoshOp>(patterns, predicate);
1798
- populateMathF32ExpansionPattern<math::ErfOp>(patterns, predicate);
1799
- populateMathF32ExpansionPattern<math::ErfcOp>(patterns, predicate);
1800
- populateMathF32ExpansionPattern<math::ExpOp>(patterns, predicate);
1801
- populateMathF32ExpansionPattern<math::Exp2Op>(patterns, predicate);
1802
- populateMathF32ExpansionPattern<math::ExpM1Op>(patterns, predicate);
1803
- populateMathF32ExpansionPattern<math::LogOp>(patterns, predicate);
1804
- populateMathF32ExpansionPattern<math::Log10Op>(patterns, predicate);
1805
- populateMathF32ExpansionPattern<math::Log1pOp>(patterns, predicate);
1806
- populateMathF32ExpansionPattern<math::Log2Op>(patterns, predicate);
1807
- populateMathF32ExpansionPattern<math::PowFOp>(patterns, predicate);
1808
- populateMathF32ExpansionPattern<math::RsqrtOp>(patterns, predicate);
1809
- populateMathF32ExpansionPattern<math::SinOp>(patterns, predicate);
1810
- populateMathF32ExpansionPattern<math::SinhOp>(patterns, predicate);
1811
- populateMathF32ExpansionPattern<math::SqrtOp>(patterns, predicate);
1812
- populateMathF32ExpansionPattern<math::TanOp>(patterns, predicate);
1813
- populateMathF32ExpansionPattern<math::TanhOp>(patterns, predicate);
1787
+ RewritePatternSet &patterns, llvm::function_ref< bool (StringRef)> predicate,
1788
+ PatternBenefit benefit ) {
1789
+ populateMathF32ExpansionPattern<math::AcosOp>(patterns, predicate, benefit );
1790
+ populateMathF32ExpansionPattern<math::AcoshOp>(patterns, predicate, benefit );
1791
+ populateMathF32ExpansionPattern<math::AsinOp>(patterns, predicate, benefit );
1792
+ populateMathF32ExpansionPattern<math::AsinhOp>(patterns, predicate, benefit );
1793
+ populateMathF32ExpansionPattern<math::AtanOp>(patterns, predicate, benefit );
1794
+ populateMathF32ExpansionPattern<math::Atan2Op>(patterns, predicate, benefit );
1795
+ populateMathF32ExpansionPattern<math::AtanhOp>(patterns, predicate, benefit );
1796
+ populateMathF32ExpansionPattern<math::CbrtOp>(patterns, predicate, benefit );
1797
+ populateMathF32ExpansionPattern<math::CosOp>(patterns, predicate, benefit );
1798
+ populateMathF32ExpansionPattern<math::CoshOp>(patterns, predicate, benefit );
1799
+ populateMathF32ExpansionPattern<math::ErfOp>(patterns, predicate, benefit );
1800
+ populateMathF32ExpansionPattern<math::ErfcOp>(patterns, predicate, benefit );
1801
+ populateMathF32ExpansionPattern<math::ExpOp>(patterns, predicate, benefit );
1802
+ populateMathF32ExpansionPattern<math::Exp2Op>(patterns, predicate, benefit );
1803
+ populateMathF32ExpansionPattern<math::ExpM1Op>(patterns, predicate, benefit );
1804
+ populateMathF32ExpansionPattern<math::LogOp>(patterns, predicate, benefit );
1805
+ populateMathF32ExpansionPattern<math::Log10Op>(patterns, predicate, benefit );
1806
+ populateMathF32ExpansionPattern<math::Log1pOp>(patterns, predicate, benefit );
1807
+ populateMathF32ExpansionPattern<math::Log2Op>(patterns, predicate, benefit );
1808
+ populateMathF32ExpansionPattern<math::PowFOp>(patterns, predicate, benefit );
1809
+ populateMathF32ExpansionPattern<math::RsqrtOp>(patterns, predicate, benefit );
1810
+ populateMathF32ExpansionPattern<math::SinOp>(patterns, predicate, benefit );
1811
+ populateMathF32ExpansionPattern<math::SinhOp>(patterns, predicate, benefit );
1812
+ populateMathF32ExpansionPattern<math::SqrtOp>(patterns, predicate, benefit );
1813
+ populateMathF32ExpansionPattern<math::TanOp>(patterns, predicate, benefit );
1814
+ populateMathF32ExpansionPattern<math::TanhOp>(patterns, predicate, benefit );
1814
1815
}
1815
1816
1816
1817
template <typename OpType, typename PatternType>
1817
1818
static void populateMathPolynomialApproximationPattern (
1818
- RewritePatternSet &patterns,
1819
- llvm::function_ref< bool (StringRef)> predicate ) {
1819
+ RewritePatternSet &patterns, llvm::function_ref< bool (StringRef)> predicate,
1820
+ PatternBenefit benefit ) {
1820
1821
if (predicate (OpType::getOperationName ())) {
1821
- patterns.add <PatternType>(patterns.getContext ());
1822
+ patterns.add <PatternType>(patterns.getContext (), benefit );
1822
1823
}
1823
1824
}
1824
1825
1825
1826
void mlir::populateMathPolynomialApproximationPatterns (
1826
- RewritePatternSet &patterns,
1827
- llvm::function_ref< bool (StringRef)> predicate ) {
1827
+ RewritePatternSet &patterns, llvm::function_ref< bool (StringRef)> predicate,
1828
+ PatternBenefit benefit ) {
1828
1829
populateMathPolynomialApproximationPattern<AcosOp,
1829
1830
AcosPolynomialApproximation>(
1830
- patterns, predicate);
1831
+ patterns, predicate, benefit );
1831
1832
populateMathPolynomialApproximationPattern<AsinOp,
1832
1833
AsinPolynomialApproximation>(
1833
- patterns, predicate);
1834
+ patterns, predicate, benefit );
1834
1835
populateMathPolynomialApproximationPattern<AtanOp, AtanApproximation>(
1835
- patterns, predicate);
1836
+ patterns, predicate, benefit );
1836
1837
populateMathPolynomialApproximationPattern<Atan2Op, Atan2Approximation>(
1837
- patterns, predicate);
1838
+ patterns, predicate, benefit );
1838
1839
populateMathPolynomialApproximationPattern<CbrtOp, CbrtApproximation>(
1839
- patterns, predicate);
1840
+ patterns, predicate, benefit );
1840
1841
populateMathPolynomialApproximationPattern<
1841
- CosOp, SinAndCosApproximation<false , math::CosOp>>(patterns, predicate);
1842
+ CosOp, SinAndCosApproximation<false , math::CosOp>>(patterns, predicate,
1843
+ benefit);
1842
1844
populateMathPolynomialApproximationPattern<ErfOp, ErfPolynomialApproximation>(
1843
- patterns, predicate);
1845
+ patterns, predicate, benefit );
1844
1846
populateMathPolynomialApproximationPattern<ErfcOp,
1845
1847
ErfcPolynomialApproximation>(
1846
- patterns, predicate);
1848
+ patterns, predicate, benefit );
1847
1849
populateMathPolynomialApproximationPattern<ExpOp, ExpApproximation>(
1848
- patterns, predicate);
1850
+ patterns, predicate, benefit );
1849
1851
populateMathPolynomialApproximationPattern<ExpM1Op, ExpM1Approximation>(
1850
- patterns, predicate);
1852
+ patterns, predicate, benefit );
1851
1853
populateMathPolynomialApproximationPattern<LogOp, LogApproximation>(
1852
- patterns, predicate);
1854
+ patterns, predicate, benefit );
1853
1855
populateMathPolynomialApproximationPattern<Log2Op, Log2Approximation>(
1854
- patterns, predicate);
1856
+ patterns, predicate, benefit );
1855
1857
populateMathPolynomialApproximationPattern<Log1pOp, Log1pApproximation>(
1856
- patterns, predicate);
1858
+ patterns, predicate, benefit );
1857
1859
populateMathPolynomialApproximationPattern<RsqrtOp, RsqrtApproximation>(
1858
- patterns, predicate);
1860
+ patterns, predicate, benefit );
1859
1861
populateMathPolynomialApproximationPattern<
1860
- SinOp, SinAndCosApproximation<true , math::SinOp>>(patterns, predicate);
1862
+ SinOp, SinAndCosApproximation<true , math::SinOp>>(patterns, predicate,
1863
+ benefit);
1861
1864
populateMathPolynomialApproximationPattern<TanhOp, TanhApproximation>(
1862
- patterns, predicate);
1865
+ patterns, predicate, benefit );
1863
1866
}
1864
1867
1865
1868
void mlir::populateMathPolynomialApproximationPatterns (
0 commit comments