[all-commits] [llvm/llvm-project] 207417: [mlir][ODS] Add a C++ abstraction for OpBuilders

River Riddle via All-commits all-commits at lists.llvm.org
Mon Jan 11 12:08:56 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 207417730134931c7d5bf82e0b16c7757ad05e05
      https://github.com/llvm/llvm-project/commit/207417730134931c7d5bf82e0b16c7757ad05e05
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-01-11 (Mon, 11 Jan 2021)

  Changed paths:
    A mlir/include/mlir/TableGen/Builder.h
    M mlir/include/mlir/TableGen/Operator.h
    A mlir/lib/TableGen/Builder.cpp
    M mlir/lib/TableGen/CMakeLists.txt
    M mlir/lib/TableGen/Operator.cpp
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir][ODS] Add a C++ abstraction for OpBuilders

This removes the need for OpDefinitionsGen to use raw tablegen API, and will also
simplify adding builders to TypeDefs as well.

Differential Revision: https://reviews.llvm.org/D94273


  Commit: 948be58258dd81d56b1057657193f7dcf6dfa9bd
      https://github.com/llvm/llvm-project/commit/948be58258dd81d56b1057657193f7dcf6dfa9bd
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-01-11 (Mon, 11 Jan 2021)

  Changed paths:
    M mlir/docs/OpDefinitions.md
    M mlir/include/mlir/Dialect/ArmSVE/ArmSVE.td
    M mlir/include/mlir/IR/OpBase.td
    M mlir/include/mlir/TableGen/TypeDef.h
    M mlir/lib/TableGen/TypeDef.cpp
    M mlir/test/lib/Dialect/Test/TestTypeDefs.td
    M mlir/test/lib/Dialect/Test/TestTypes.cpp
    M mlir/test/mlir-tblgen/typedefs.td
    M mlir/tools/mlir-tblgen/TypeDefGen.cpp

  Log Message:
  -----------
  [mlir][TypeDefGen] Add support for adding builders when generating a TypeDef

This allows for specifying additional get/getChecked methods that should be generated on the type, and acts similarly to how OpBuilders work. TypeBuilders have two additional components though:
* InferredContextParam
  - Bit indicating that the context parameter of a get method is inferred from one of the builder parameters
* checkedBody
  - A code block representing the body of the equivalent getChecked method.

Differential Revision: https://reviews.llvm.org/D94274


  Commit: d79642b3db1d74524f41d37f78385950158787a4
      https://github.com/llvm/llvm-project/commit/d79642b3db1d74524f41d37f78385950158787a4
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-01-11 (Mon, 11 Jan 2021)

  Changed paths:
    M mlir/include/mlir/IR/BuiltinTypes.h
    M mlir/include/mlir/IR/BuiltinTypes.td
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/IR/MLIRContext.cpp
    M mlir/lib/IR/TypeDetail.h

  Log Message:
  -----------
  [mlir][IR][NFC] Move the definitions of Complex/Function/Integer/Opaque/TupleType to ODS

The type tablegen backend now has enough support to represent these types well enough, so we can now move them to be declaratively defined.

Differential Revision: https://reviews.llvm.org/D94275


Compare: https://github.com/llvm/llvm-project/compare/72f1f084670e...d79642b3db1d


More information about the All-commits mailing list