llvm-project/mlir/lib
Uday Bondhugula 47034c4bc5 Introduce prefetch op: affine -> std -> llvm intrinsic
Introduce affine.prefetch: op to prefetch using a multi-dimensional
subscript on a memref; similar to affine.load but has no effect on
semantics, but only on performance.

Provide lowering through std.prefetch, llvm.prefetch and map to llvm's
prefetch instrinsic. All attributes reflected through the lowering -
locality hint, rw, and instr/data cache.

  affine.prefetch %0[%i, %j + 5], false, 3, true : memref<400x400xi32>

Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>

Closes tensorflow/mlir#225

COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/225 from bondhugula:prefetch 4c3b4e93bc64d9a5719504e6d6e1657818a2ead0
PiperOrigin-RevId: 286212997
2019-12-18 10:00:04 -08:00
..
Analysis NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
Conversion Introduce prefetch op: affine -> std -> llvm intrinsic 2019-12-18 10:00:04 -08:00
Dialect Introduce prefetch op: affine -> std -> llvm intrinsic 2019-12-18 10:00:04 -08:00
EDSC NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
ExecutionEngine NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
IR NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
Parser Introduce prefetch op: affine -> std -> llvm intrinsic 2019-12-18 10:00:04 -08:00
Pass NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
Quantizer NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
Support NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
TableGen [ODS] Generate builders taking unwrapped value and defaults for attributes 2019-12-02 09:33:57 -08:00
Target NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace. 2019-12-18 09:29:20 -08:00
Transforms Introduce prefetch op: affine -> std -> llvm intrinsic 2019-12-18 10:00:04 -08:00
Translation mlir-translate: support -verify-diagnostics 2019-11-07 11:42:46 -08:00
CMakeLists.txt NFC: Move AffineOps dialect to the Dialect sub-directory. 2019-08-20 15:36:39 -07:00