- Jun 03, 2021
-
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D103548
-
Chia-hung Duan authored
Move the core reducer algorithm into a library so that it'll be easier for porting to different projects. Depends On D101046 Reviewed By: jpienaar, rriddle Differential Revision: https://reviews.llvm.org/D101607
-
- Jun 02, 2021
-
-
Amy Zhuang authored
-
River Riddle authored
This removes the need to define the derived Operand class before the derived Value class. The major benefit of this refactoring is that we no longer need the OpaqueValue class, as OpOperand can now be defined after Value. As part of this refactoring the BlockOperand and OpOperand classes are moved out of UseDefLists.h and to more suitable locations in BlockSupport and Value. After this change, UseDefLists.h is almost entirely composed of generic use def utilities. Differential Revision: https://reviews.llvm.org/D103353
-
River Riddle authored
This simplifies various pieces of code that interact with the pass registry, e.g. this removes the need to register passes to get accurate pass pipelines descriptions when generating crash reproducers. Differential Revision: https://reviews.llvm.org/D101880
-
Jacques Pienaar authored
-
River Riddle authored
This revision allows for attaching "debug labels" to patterns, and provides to FrozenRewritePatternSet for filtering patterns based on these labels (in addition to the debug name of the pattern). This will greatly simplify the ability to write tests targeted towards specific patterns (in cases where many patterns may interact), will also simplify debugging pattern application by observing how application changes when enabling/disabling specific patterns. To enable better reuse of pattern rewrite options between passes, this revision also adds a new PassUtil.td file to the Rewrite/ library that will allow for passes to easily hook into a common interface for pattern debugging. Two options are used to seed this utility, `disable-patterns` and `enable-patterns`, which are used to enable the filtering behavior indicated above. Differential Revision: https://reviews.llvm.org/D102441
-
Jacques Pienaar authored
Currently the diagnostics reports the file:line:col, but some LSP frontends require a non-empty range. Report either the range of an identifier that starts at location, or a range of 1. Expose the id location to range helper and reuse here. Differential Revision: https://reviews.llvm.org/D103482
-
Mehdi Amini authored
-
Krzysztof Drewniak authored
When LLVM and MLIR are built as subprojects (via add_subdirectory), the CMake configuration that indicates where the MLIR libraries are is not necessarily in the same cmake/ directory as LLVM's configuration. This patch removes that assumption about where MLIRConfig.cmake is located. (As an additional none, the %llvm_lib_dir substitution was never defined, and so find_package(MLIR) in the build was succeeding for other reasons.) Reviewed By: stephenneuendorffer Differential Revision: https://reviews.llvm.org/D103276
-
Mehdi Amini authored
-
Mehdi Amini authored
The `OptReductionPass.cpp` file depends on the TableGen generated `mlir/Reducer/Passes.h.inc` file.
-
Tobias Gysi authored
Remove two unused methods and replace the implementation of getResultsPositionInLoopsToShapeMap. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103397
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in FusionOnTensors.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103471
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D103507
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Sparsification.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103436
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D102668
-
Matthias Springer authored
Support for tensor types in the unrolled version will follow in a separate commit. Add a new pass option to activate lowering of transfer ops with tensor types (default: deactivated). Differential Revision: https://reviews.llvm.org/D102666
-
Chia-hung Duan authored
* A Reducer is a kind of RewritePattern, so it's just the same as writing graph rewrite. * ReductionTreePass operates on Operation rather than ModuleOp, so that * we are able to reduce a nested structure(e.g., module in module) by * self-nesting. Reviewed By: jpienaar, rriddle Differential Revision: https://reviews.llvm.org/D101046
-
Chris Lattner authored
I backed this off to make the previous patch easier to wrangle, but now this is an efficient query and it is better to not replace it in CSE. Differential Revision: https://reviews.llvm.org/D103494
-
- Jun 01, 2021
-
-
Chris Lattner authored
The previous impl densely scanned the entire region starting with an op when dominators were created, creating a DominatorTree for every region. This is extremely expensive up front -- particularly for clients like Linalg/Transforms/Fusion.cpp that construct DominanceInfo for a single query. It is also extremely memory wasteful for IRs that use single block regions commonly (e.g. affine.for) because it's making a dominator tree for a region that has trivial dominance. The implementation also had numerous unnecessary minor efficiencies, e.g. doing multiple walks of the region tree or tryGetBlocksInSameRegion building a DenseMap that it didn't need. This patch switches to an approach where [Post]DominanceInfo is free to construct, and which lazily constructs DominatorTree's for any multiblock regions that it needs. This avoids the up-front cost entirely, making its runtime proportional to the complexity of the region tree instead of # ops in a region. This also avoids the memory and time cost of creating DominatorTree's for single block regions. Finally this rewrites the implementation for simplicity and to avoids the constant factor problems the old implementation had. Differential Revision: https://reviews.llvm.org/D103384
-
Rob Suderman authored
Depthwise convolution should support kernel dilation and non-dilation should not be a special case. Updated op definition to include a dilation attribute. This also adds a tosa.depthwise_conv2d lowering to linalg to support the new linalg behavior. Differential Revision: https://reviews.llvm.org/D103219
-
Nikita Popov authored
Since fd7e309e this is no longer pulled in indirectly through DenseMapInfo.h.
-
Tres Popp authored
Previously, this assumed use of ModuleOp and FuncOp. There is no need to restrict this, and using interfaces allows these patterns to be used during dialect conversion to LLVM. Some assertions were removed due to inconsistent implementation of FunctionLikeOps. Differential Revision: https://reviews.llvm.org/D103447
-
Tobias Gysi authored
Fix signedness warnings in Utils.cpp and LinalgInterfaces.cpp.
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in DependenceAnalysis.cpp and DependenceAnalysis.h. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103411
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Fusion.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103437
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Tiling.cpp and Utils.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103438
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Vectorization.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103410
-
Lewuathe authored
A single backslash is not properly escaped in the web documentation. We can make sure to escape for rendering subscripts. Additionally, it also fixed the mal-formed equations in //"Affine to fixed point"// and //"Fixed point to affine"// sections. With this fix, the page is rendered as follows. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D101252
-
- May 31, 2021
-
-
Andi Drebes authored
Prefix all operations from the ODS of the `Math` dialect with `Math_` in order to avoid name clashes when including `MathOps.td` in other TableGen files (e.g., for `FloatUnaryOp`, which also exists in `Standard`). Reviewed By: jpienaar, mehdi_amini Differential Revision: https://reviews.llvm.org/D103248
-
Andi Drebes authored
The `::mlir` namespace for operations from standard is currently defined by enclosing the header file generated from the ODS in `Ops.td` in a namespace in `Ops.h`. However, when referencing operations from `Ops.td` in other TableGen files, this causes the generated C++ code to refer to classes from the global namespace instead of `::mlir`. By defining the namespace through the `cppNamespace` field for `StandardOps_Dialect` directly in `Ops.td` instead, the ODS becomes reusable in other TableGen files through simple inclusion. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D103234
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in LinalgInterfaces.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103404
-
Tobias Gysi authored
Adding methods to access operand properties via OpOperands and mark outdated methods as deprecated. Differential Revision: https://reviews.llvm.org/D103394
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D103403
-
Uday Bondhugula authored
Fix warnings in AffineOps.cpp. Differential Revision: https://reviews.llvm.org/D103374
-
Tres Popp authored
No tests fail and this seems to be technical debt from when the math dialect was created. This should not be there as it prevents users from configuring their converion target freely and results in unexpected behavior on seemingly unrelated ops. Differential Revision: https://reviews.llvm.org/D103388
-
Matthias Springer authored
Fold away in_bounds attribute even if the transfer op has a non-identity permutation map. Differential Revision: https://reviews.llvm.org/D103133
-
Tres Popp authored
-
- May 30, 2021
-
-
Chris Lattner authored
CSE is the only client of this API, refactor it a bit to pull the query internally to make changes to DominanceInfo a bit easier. This commit also improves comments a bit.
-