llvm-project/mlir/test/Transforms
Tung D. Le 2b5d1776ff [MLIR][Affine-loop-fusion] Fix a bug in affine-loop-fusion pass when there are non-affine operations
When there is a mix of affine load/store and non-affine operations (e.g. std.load, std.store),
affine-loop-fusion ignores the present of non-affine ops, thus changing the program semantics.

E.g. we have a program of three affine loops operating on the same memref in which one of them uses std.load and std.store, as follows.
```
affine.for
  affine.store %1
affine.for
  std.load %1
  std.store %1
affine.for
  affine.load %1
  affine.store %1
```
affine-loop-fusion will produce the following result which changed the program semantics:
```
affine.for
  std.load %1
  std.store %1
affine.for
  affine.store %1
  affine.load %1
  affine.store %1
```

This patch is to fix the above problem by checking non-affine users of the memref that are between the source and destination nodes of interest.

Differential Revision: https://reviews.llvm.org/D82158
2020-06-26 18:26:42 +05:30
..
buffer-placement-preparation-allowed-memref-results.mlir Change filecheck default to dump input on failure 2020-06-09 18:57:46 +00:00
buffer-placement-preparation.mlir Change filecheck default to dump input on failure 2020-06-09 18:57:46 +00:00
buffer-placement.mlir [mlir] Extended BufferPlacement to support more sophisticated scenarios in which 2020-06-15 12:19:23 +02:00
canonicalize-block-merge.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
canonicalize-dce.mlir Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
canonicalize.mlir Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
constant-fold.mlir [mlir][StandardDialect] Add some folding for operations in standard dialect. 2020-06-15 22:52:29 -07:00
cse.mlir [mlir] Refactor BoolAttr to be a special case of IntegerAttr 2020-06-04 16:41:24 -07:00
inlining-dce.mlir [mlir][Inliner] Properly handle callgraph node deletion 2020-06-17 15:45:56 -07:00
inlining.mlir [mlir] Refactor BoolAttr to be a special case of IntegerAttr 2020-06-04 16:41:24 -07:00
location-snapshot.mlir Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
loop-coalescing.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
loop-fusion-dependence-check.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
loop-fusion-slice-computation.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
loop-fusion-transformation.mlir [MLIR] Give AffineStoreOp and AffineLoadOp Memory SideEffects. 2020-04-28 15:45:25 +02:00
loop-fusion.mlir [MLIR][Affine-loop-fusion] Fix a bug in affine-loop-fusion pass when there are non-affine operations 2020-06-26 18:26:42 +05:30
loop-invariant-code-motion.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
loop-utils.mlir [mlir][SCF] Add utility to clone an scf.ForOp while appending new yield values. 2020-05-29 07:28:17 -04:00
memref-bound-check.mlir [MLIR] Fix memref region compute for 0-d memref accesses 2020-06-16 13:59:53 +05:30
memref-dataflow-opt.mlir Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
memref-dependence-check.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
memref-normalize.mlir [MLIR] Give AffineStoreOp and AffineLoadOp Memory SideEffects. 2020-04-28 15:45:25 +02:00
parallel-loop-collapsing.mlir [mlir] parallel loop canonicalization 2020-06-26 09:57:08 +02:00
parametric-mapping.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
parametric-tiling.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
pipeline-data-transfer.mlir Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
sccp-callgraph.mlir Change filecheck default to dump input on failure 2020-06-09 18:57:46 +00:00
sccp-structured.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
sccp.mlir [mlir] Refactor BoolAttr to be a special case of IntegerAttr 2020-06-04 16:41:24 -07:00
single-parallel-loop-collapsing.mlir [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
strip-debuginfo.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
test-canonicalize.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
test-inlining.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
test-legalize-remapped-value.mlir Add getRemappedValue to ConversionPatternRewriter 2019-11-19 11:09:39 -08:00
test-legalize-unknown-root.mlir [mlir] Allow for patterns to match any root kind. 2020-06-18 13:58:47 -07:00
test-legalizer-analysis.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
test-legalizer-full.mlir Add a flag on the context to protect against creation of operations in unregistered dialects 2020-03-30 19:37:31 +00:00
test-legalizer.mlir [mlir][DialectConversion] Refactor how block argument types get converted 2020-06-18 15:59:22 -07:00
test-operation-folder.mlir [mlir] Add a test for OperationFolder 2020-05-07 12:39:24 +02:00
test-symbol-dce.mlir [mlir][SymbolDCE][NFC] Fix the visibility of the symbols within the test and 2020-04-13 00:33:11 -07:00