forked from OSchip/llvm-project
ce7e59536c
- compute tile sizes based on a simple model that looks at memory footprints (instead of using the hardcoded default value) - adjust tile sizes to make them factors of trip counts based on an option - update loop fusion CL options to allow setting maximal fusion at pass creation - change an emitError to emitWarning (since it's not a hard error unless the client treats it that way, in which case, it can emit one) $ mlir-opt -debug-only=loop-tile -loop-tile test/Transforms/loop-tiling.mlir test/Transforms/loop-tiling.mlir:81:3: note: using tile sizes [4 4 5 ] for %i = 0 to 256 { for %i0 = 0 to 256 step 4 { for %i1 = 0 to 256 step 4 { for %i2 = 0 to 250 step 5 { for %i3 = #map4(%i0) to #map11(%i0) { for %i4 = #map4(%i1) to #map11(%i1) { for %i5 = #map4(%i2) to #map12(%i2) { %0 = load %arg0[%i3, %i5] : memref<8x8xvector<64xf32>> %1 = load %arg1[%i5, %i4] : memref<8x8xvector<64xf32>> %2 = load %arg2[%i3, %i4] : memref<8x8xvector<64xf32>> %3 = mulf %0, %1 : vector<64xf32> %4 = addf %2, %3 : vector<64xf32> store %4, %arg2[%i3, %i4] : memref<8x8xvector<64xf32>> } } } } } } PiperOrigin-RevId: 237461836 |
||
---|---|---|
.. | ||
Vectorize | ||
canonicalize.mlir | ||
constant-fold.mlir | ||
cse.mlir | ||
dma-generate.mlir | ||
loop-fusion.mlir | ||
loop-tiling.mlir | ||
lower-affine.mlir | ||
memref-bound-check.mlir | ||
memref-dataflow-opt.mlir | ||
memref-dependence-check.mlir | ||
parallelism-detection.mlir | ||
pipeline-data-transfer.mlir | ||
simplify-affine-structures.mlir | ||
slicing_utils.mlir | ||
strip-debuginfo.mlir | ||
unroll-jam.mlir | ||
unroll.mlir |