MLIR News, 18th edition (10/17/2020)

See the previous published edition.

Welcome to the eighteenth issue of the MLIR (bi)Weekly, a newsletter (published on Friday) covering developments in MLIR, and related projects in the ecosystem. MLIR (bi)Weekly is brought to you by a collective effort of contributors, we welcome your contributions!




  • A new SymbolUserOpInterface class has been added to allow for properly and efficiently verify references to symbol operations.
  • A new Idempotent trait has been added to identify operations that satisfy f(f(x)) = f(x).
  • Traits may now define a foldTrait method to hook into an operations fold hook.

Table-driven Infrastructure

  • Support for defining Types in ODS
    • Generates the Type class with accessors.
    • Generates a TypeStorage class and its necessary methods (namely construct, hashKey, and operator==()).
    • Allows for defining printers and parsers inline with ODS.

CPU codegen

  • Compiler support for sparse tensors in MLIR has started:
    • A convenience runtime support library for reading Matrix Market Format was added to the mlir-cpu-runner. It is useful for benchmarking, testing, and debugging sparse code (also see discourse presentation); other tensor repositories will follow
    • A proposal/design doc with Q4 plans for sparse compiler implementation (see doc posted in the thread MLIR Support for Sparse Tensors).
  • A bit more investigation of XLA:CPU matvec performance trying to use software prefetching for larger matrices, but without any significant improvement.


  • SPIR-V dialect now supports identified and recursive structs.
  • Composite specialization constants are now properly supported.
  • A few OpenCL extended ops (exp, fabs, s_abs) are added.
  • SPIR-V target environment can represent cooperative matrix configurations now.
  • A directory is started to host vector op to SPIR-V op conversions.
  • SPIR-V to LLVM conversion supports composite insert/extract now.

In the Ecosystem

CIRCT : Circuit IR Compilers and Tools aka ‘MLIR for hardware’

1 Like

@mehdi_amini I updated the 2nd item in the SPIR-V section to read:

* Composite specialization constants are _now_ properly supported.

I recently added the support for composite spec ops and they seem to work (minus some TODOs). If this wasn’t a typo because of some problem with the new changes, please let me know.

Oh yes. Sorry I think I introduced the typo there. :frowning: Thanks for fixing it!

1 Like