llvm-capstone/mlir
Matthias Springer 1e1a3112f1 [mlir][bufferization] Privatize buffers for parallel regions
One-Shot Bufferize correctly handles RaW conflicts around repetitive regions (loops). Specical handling is needed for parallel regions. These are a special kind of repetitive regions that can have additional RaW conflicts that would not be present if the regions would be executed sequentially.

Example:
```
%0 = bufferization.alloc_tensor()
scf.forall ... {
  %1 = linalg.fill ins(...) outs(%0)
  ...
  scf.forall.in_parallel {
    tensor.parallel_insert_slice %1 into ...
  }
}
```

A separate (private) buffer must be allocated for each iteration of the `scf.forall` loop.

This change adds a new interface method to `BufferizableOpInterface` to detect parallel regions. By default, regions are assumed to be sequential.

A buffer is privatized if an OpOperand bufferizes to a memory read inside a parallel region that is different from the parallel region where operand's value is defined.

Differential Revision: https://reviews.llvm.org/D159286
2023-09-06 14:28:43 +02:00
..
benchmark/python [NFC][Py Reformat] Reformat python files in mlir subdir 2023-05-26 08:05:40 +02:00
cmake/modules [mlir][python bindings] generate all the enums 2023-08-23 15:03:55 -05:00
docs [mlir] Move FunctionInterfaces to Interfaces directory and inherit from CallableOpInterface 2023-08-31 11:28:23 +00:00
examples [mlir] Move FunctionInterfaces to Interfaces directory and inherit from CallableOpInterface 2023-08-31 11:28:23 +00:00
include [mlir][bufferization] Privatize buffers for parallel regions 2023-09-06 14:28:43 +02:00
lib [mlir][bufferization] Privatize buffers for parallel regions 2023-09-06 14:28:43 +02:00
python [mlir][python] Create all missing attribute builders. 2023-09-06 07:09:25 +00:00
test [mlir][bufferization] Privatize buffers for parallel regions 2023-09-06 14:28:43 +02:00
tools Revert "Revert "[MLIR] Move builtin.module LLVM IR translation to before nested operations"" 2023-09-04 11:35:59 +01:00
unittests [mlir] Add empty to StringAttr 2023-09-05 21:45:27 +00:00
utils [mlir] Fix generating checks for multiple funcs in generate-test-checks 2023-08-03 15:55:03 +00:00
.clang-format
.clang-tidy
CMakeLists.txt [mlir][NVVM] Adds the NVVM target attribute. 2023-08-08 19:21:36 +00:00
LICENSE.TXT
README.md

Multi-Level Intermediate Representation

See https://mlir.llvm.org/ for more information.