- Jun 04, 2021
-
-
River Riddle authored
This revision adds assembly state tracking for uses of symbols, allowing for go-to-definition and references support for SymbolRefAttrs. Differential Revision: https://reviews.llvm.org/D103585
-
Amy Zhuang authored
Reviewed By: vinayaka-polymage, bondhugula Differential Revision: https://reviews.llvm.org/D103294
-
- Jun 03, 2021
-
-
Nikita Popov authored
This is a followup to D103422. The DenseMapInfo implementations for ArrayRef and StringRef are moved into the ArrayRef.h and StringRef.h headers, which means that these two headers no longer need to be included by DenseMapInfo.h. This required adding a few additional includes, as many files were relying on various things pulled in by ArrayRef.h. Differential Revision: https://reviews.llvm.org/D103491
-
Aart Bik authored
Useful for "exhaustively" testing and benchmarking annotation combinations to verify correctness and perform state space search for best performing. Reviewed By: penpornk Differential Revision: https://reviews.llvm.org/D103566
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Linalg.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103619
-
Alexander Belyaev authored
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in InlineScalarOperands.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103518
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in LinalgOps.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103506
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Loops.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103453
-
Nicolas Agostini authored
Introduces a test pass that rewrites PadTensorOps with static shapes as a sequence of: ``` linalg.init_tensor // to create output linalg.fill // to initialize with padding value linalg.generic // to copy the original contents to the padded tensor ``` The pass can be triggered with: - `--test-linalg-transform-patterns="test-transform-pad-tensor"` Differential Revision: https://reviews.llvm.org/D102804
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in DropUnitDims.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103448
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Bufferize.cpp, Detensorize.cpp, and Interchange.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103530
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in TestLinalgElementwiseFusion.cpp, TestLinalgFusionTransforms.cpp, and Transforms.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103528
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Promotion.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103450
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Generalization.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103531
-
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.
-