llvm-project/mlir/lib
Lei Zhang e032d0dc63 Fix support for auxiliary ops in declarative rewrite rules
We allow to generate more ops than what are needed for replacing
the matched root op. Only the last N static values generated are
used as replacement; the others serve as auxiliary ops/values for
building the replacement.

With the introduction of multi-result op support, an op, if used
as a whole, may be used to replace multiple static values of
the matched root op. We need to consider this when calculating
the result range an generated op is to replace.

For example, we can have the following pattern:

```tblgen
def : Pattern<(ThreeResultOp ...),
              [(OneResultOp ...), (OneResultOp ...), (OneResultOp ...)]>;

// Two op to replace all three results
def : Pattern<(ThreeResultOp ...),
              [(TwoResultOp ...), (OneResultOp ...)]>;

// One op to replace all three results
def : Pat<(ThreeResultOp ...), (ThreeResultOp ...)>;

def : Pattern<(ThreeResultOp ...),
              [(AuxiliaryOp ...), (ThreeResultOp ...)]>;
```
PiperOrigin-RevId: 261017235
2019-07-31 16:03:42 -07:00
..
AffineOps Verify that affine.load/store/dma_start/dma_wait operands are valid dimension or symbol identifiers. 2019-07-27 08:20:38 -07:00
Analysis Fix backward slice corner case 2019-07-26 03:49:17 -07:00
Conversion Initial implementation to translate kernel fn in GPU Dialect to SPIR-V Dialect 2019-07-30 11:55:55 -07:00
Dialect Add support for (de)serialization of SPIR-V Op Decorations 2019-07-30 14:15:03 -07:00
EDSC Remove the 'region' field from OpBuilder. 2019-07-12 17:42:41 -07:00
ExecutionEngine Update style/clang-format (NFC). 2019-07-22 11:29:21 -07:00
IR Add support for hexadecimal float literals 2019-07-30 14:06:26 -07:00
LLVMIR Introduce LLVMFuncOp 2019-07-23 09:26:39 -07:00
Linalg Enable multi-level Linalg fusion 2019-07-24 05:10:54 -07:00
Parser Support hexadecimal floats in tensor literals 2019-07-30 14:24:59 -07:00
Pass Change the IR printing pass instrumentation to ignore the verifier passes on non-failure. 2019-07-12 17:42:46 -07:00
Quantizer NFC: Remove `Module::getFunctions` in favor of a general `getOps<T>`. 2019-07-08 18:28:17 -07:00
SDBM SDBM: fix the order of variables in the stripe-induced inequalities 2019-06-03 19:26:29 -07:00
StandardOps Add a `HasParent` operation trait to enforce a specific parent on an operation (NFC) 2019-07-30 06:17:11 -07:00
Support Merge TypeUtilities library into the IR library 2019-07-20 03:04:22 -07:00
TableGen Fix support for auxiliary ops in declarative rewrite rules 2019-07-31 16:03:42 -07:00
Target Move GPU dialect to {lib,include/mlir}/Dialect 2019-07-25 00:41:17 -07:00
Transforms Initialize union to avoid -Wmissing-field-initializers warning. 2019-07-27 11:47:26 -07:00
Translation Include missing header. 2019-07-08 08:05:09 -07:00
VectorOps Add a few utility overloads for OpAsmParser methods: 2019-06-09 16:18:21 -07:00
CMakeLists.txt Move GPU dialect to {lib,include/mlir}/Dialect 2019-07-25 00:41:17 -07:00