llvm-project/mlir/test/Transforms
Uday Bondhugula ce7e59536c Add a basic model to set tile sizes + some cleanup
- 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
2019-03-29 17:06:51 -07:00
..
Vectorize Automated rollback of changelist 232728977. 2019-03-29 16:21:38 -07:00
canonicalize.mlir Modify the canonicalizations of select and muli to use the fold hook. 2019-03-29 16:20:06 -07:00
constant-fold.mlir Modify the canonicalizations of select and muli to use the fold hook. 2019-03-29 16:20:06 -07:00
cse.mlir Set the namespace of the StandardOps dialect to "std", but add a special case to the parser to allow parsing standard operations without the "std" prefix. This will now allow for the standard dialect to be looked up dynamically by name. 2019-03-29 16:54:20 -07:00
dma-generate.mlir DMA generation CL flag update 2019-03-29 16:59:05 -07:00
loop-fusion.mlir Use FlatAffineConstraints::unionBoundingBox to perform slice bounds union for loop fusion pass (WIP). 2019-03-29 16:59:21 -07:00
loop-tiling.mlir Add a basic model to set tile sizes + some cleanup 2019-03-29 17:06:51 -07:00
lower-affine.mlir Automated rollback of changelist 232728977. 2019-03-29 16:21:38 -07:00
memref-bound-check.mlir Set the namespace of the StandardOps dialect to "std", but add a special case to the parser to allow parsing standard operations without the "std" prefix. This will now allow for the standard dialect to be looked up dynamically by name. 2019-03-29 16:54:20 -07:00
memref-dataflow-opt.mlir Automated rollback of changelist 232717775. 2019-03-29 16:19:33 -07:00
memref-dependence-check.mlir Automated rollback of changelist 232728977. 2019-03-29 16:21:38 -07:00
parallelism-detection.mlir A simple pass to detect and mark all parallel loops 2019-03-29 16:53:03 -07:00
pipeline-data-transfer.mlir Generate dealloc's for alloc's of pipeline-data-transfer 2019-03-29 16:25:53 -07:00
simplify-affine-structures.mlir Automated rollback of changelist 232728977. 2019-03-29 16:21:38 -07:00
slicing_utils.mlir Eliminate extfunc/cfgfunc/mlfunc as a concept, and just use 'func' instead. 2019-03-29 14:51:37 -07:00
strip-debuginfo.mlir Automated rollback of changelist 232728977. 2019-03-29 16:21:38 -07:00
unroll-jam.mlir Automated rollback of changelist 232717775. 2019-03-29 16:19:33 -07:00
unroll.mlir Set the namespace of the StandardOps dialect to "std", but add a special case to the parser to allow parsing standard operations without the "std" prefix. This will now allow for the standard dialect to be looked up dynamically by name. 2019-03-29 16:54:20 -07:00