Skip to content
  1. Apr 05, 2021
  2. Apr 02, 2021
    • Aart Bik's avatar
      [mlir][sparse] support for very narrow index and pointer types · a0c5b7e3
      Aart Bik authored
      Rationale:
      Small indices and values, when allowed by the required range of the
      input tensors, can reduce the memory footprint of sparse tensors
      even more. Note, however, that we must be careful zero extending
      the values (since sparse tensors never use negatives for indexing),
      but LLVM treats the index type as signed in most memory operations
      (like the scatter and gather). This CL dots all the i's in this regard.
      
      Reviewed By: bixia
      
      Differential Revision: https://reviews.llvm.org/D99777
      a0c5b7e3
  3. Mar 31, 2021
  4. Mar 30, 2021
    • Inho Seo's avatar
      Added static verification for Linalg Ops. · f5846334
      Inho Seo authored
      This verification is to check if the indices for static shaped operands
      on linalgOps access out of bound memory or not. For dynamic shaped
      operands, we would be able to check it on runtime stage.
      
      Found several invalid Linalg ops testcases, and fixed them.
      
      Reviewed By: hanchung
      
      Differential Revision: https://reviews.llvm.org/D98390
      f5846334
  5. Mar 29, 2021
    • MaheshRavishankar's avatar
      [mlir] Enhance InferShapedTypeOpInterface and move LinalgOps to use them. · 9b051703
      MaheshRavishankar authored
      A new `InterfaceMethod` is added to `InferShapedTypeOpInterface` that
      allows an operation to return the `Value`s for each dim of its
      results. It is intended for the case where the `Value` returned for
      each dim is computed using the operands and operation attributes. This
      interface method is for cases where the result dim of an operation can
      be computed independently, and it avoids the need to aggregate all
      dims of a result into a single shape value. This also implies that
      this is not suitable for cases where the result type is unranked (for
      which the existing interface methods is to be used).
      
      Also added is a canonicalization pattern that uses this interface and
      resolves the shapes of the output in terms of the shapes of the
      inputs. Moving Linalg ops to use this interface, so that many
      canonicalization patterns implemented for individual linalg ops to
      achieve the same result can be removed in favor of the added
      canonicalization pattern.
      
      Differential Revision: https://reviews.llvm.org/D97887
      9b051703
    • MaheshRavishankar's avatar
      [mlir][Linalg] Rewrite SubTensors that take a slice out of a unit-extend dimension. · f0a2fe7f
      MaheshRavishankar authored
      Subtensor operations that are taking a slice out of a tensor that is
      unit-extent along a dimension can be rewritten to drop that dimension.
      
      Differential Revision: https://reviews.llvm.org/D99226
      f0a2fe7f
    • MaheshRavishankar's avatar
      [mlir][Linalg] Drop spurious error message · 7d8b478c
      MaheshRavishankar authored
      Drop usage of `emitRemark` and use `notifyMatchFailure` instead to
      avoid unnecessary spew during compilation.
      
      Differential Revision: https://reviews.llvm.org/D99485
      7d8b478c
  6. Mar 25, 2021
  7. Mar 24, 2021
  8. Mar 23, 2021
  9. Mar 22, 2021
    • Nicolas Vasilache's avatar
      [mlir][Linalg] Fix linalg on tensor fusion · bcd6424f
      Nicolas Vasilache authored
      - Drop unnecessary occurrences of rewriter.eraseOp: dead linalg ops on tensors should be cleaned up by DCE.
      - reimplement the part of Linalg on fusion that constructs the body and block arguments: the previous implementation had too much magic. Instead this spells out all cases explicitly and asserts / introduces TODOs for incorrect cases.
      
      As a consequence, we can use the default traversal order for this pattern.
      
      Differential Revision: https://reviews.llvm.org/D99070
      bcd6424f
    • Adrian Kuegel's avatar
      [mlir] Add an option to still use bottom-up traversal · c691b968
      Adrian Kuegel authored
      GreedyPatternRewriteDriver was changed from bottom-up traversal to top-down traversal. Not all passes work yet with that change for traversal order. To give some time for fixing, add an option to allow to switch back to bottom-up traversal. Use this option in FusionOfTensorOpsPass which fails otherwise.
      
      Differential Revision: https://reviews.llvm.org/D99059
      c691b968
  10. Mar 21, 2021
  11. Mar 19, 2021
  12. Mar 18, 2021
  13. Mar 15, 2021
    • Julian Gross's avatar
      [MLIR] Create memref dialect and move dialect-specific ops from std. · e2310704
      Julian Gross authored
      Create the memref dialect and move dialect-specific ops
      from std dialect to this dialect.
      
      Moved ops:
      AllocOp -> MemRef_AllocOp
      AllocaOp -> MemRef_AllocaOp
      AssumeAlignmentOp -> MemRef_AssumeAlignmentOp
      DeallocOp -> MemRef_DeallocOp
      DimOp -> MemRef_DimOp
      MemRefCastOp -> MemRef_CastOp
      MemRefReinterpretCastOp -> MemRef_ReinterpretCastOp
      GetGlobalMemRefOp -> MemRef_GetGlobalOp
      GlobalMemRefOp -> MemRef_GlobalOp
      LoadOp -> MemRef_LoadOp
      PrefetchOp -> MemRef_PrefetchOp
      ReshapeOp -> MemRef_ReshapeOp
      StoreOp -> MemRef_StoreOp
      SubViewOp -> MemRef_SubViewOp
      TransposeOp -> MemRef_TransposeOp
      TensorLoadOp -> MemRef_TensorLoadOp
      TensorStoreOp -> MemRef_TensorStoreOp
      TensorToMemRefOp -> MemRef_BufferCastOp
      ViewOp -> MemRef_ViewOp
      
      The roadmap to split the memref dialect from std is discussed here:
      https://llvm.discourse.group/t/rfc-split-the-memref-dialect-from-std/2667
      
      Differential Revision: https://reviews.llvm.org/D98041
      e2310704
  14. Mar 13, 2021
  15. Mar 10, 2021
  16. Mar 09, 2021
  17. Mar 05, 2021
  18. Mar 04, 2021
  19. Mar 03, 2021
Loading