[all-commits] [llvm/llvm-project] f3ebf8: [mlir] Generate Dialect constructors in .cpp inste...

River Riddle via All-commits all-commits at lists.llvm.org
Sat Apr 23 01:33:50 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f3ebf828dc54bf488ad49d5ec2f070ea36a31e6f
      https://github.com/llvm/llvm-project/commit/f3ebf828dc54bf488ad49d5ec2f070ea36a31e6f
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-04-23 (Sat, 23 Apr 2022)

  Changed paths:
    M mlir/tools/mlir-tblgen/DialectGen.cpp

  Log Message:
  -----------
  [mlir] Generate Dialect constructors in .cpp instead of .h

By generating in the .h file, we were forcing dialects to include
a lot of additional header files because:

* Fields of the dialect, e.g. std::unique_ptr<>, were unable to use
  forward declarations.
* Dependent dialects are loaded in the constructor, requiring the
  full definition of each dependent dialect (which, depending on
  the file structure of the dialect, may include the operations).

By generating in the .cpp we get much faster builds, and also
better align with the rest of the code base.

Fixes #55044

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


  Commit: eda6f907d2581a956aec511ae1d13adc3f97d3ad
      https://github.com/llvm/llvm-project/commit/eda6f907d2581a956aec511ae1d13adc3f97d3ad
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-04-23 (Sat, 23 Apr 2022)

  Changed paths:
    M flang/include/flang/Lower/Support/Utils.h
    M flang/include/flang/Optimizer/Builder/Runtime/Character.h
    M mlir/include/mlir/Dialect/Bufferization/IR/Bufferization.h
    M mlir/include/mlir/Dialect/Complex/IR/Complex.h
    M mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlow.h
    M mlir/include/mlir/Dialect/Func/IR/FuncOps.h
    M mlir/include/mlir/Dialect/GPU/GPUDialect.h
    M mlir/include/mlir/Dialect/Linalg/IR/Linalg.h
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    M mlir/include/mlir/Dialect/MemRef/IR/MemRef.h
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/include/mlir/Dialect/SCF/SCF.h
    M mlir/include/mlir/Dialect/Shape/IR/Shape.h
    M mlir/include/mlir/Dialect/Tensor/IR/Tensor.h
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.h
    M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
    M mlir/lib/Dialect/Arithmetic/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Bufferization/IR/BufferizationDialect.cpp
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Func/Transforms/FuncBufferize.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp
    M mlir/lib/Dialect/Linalg/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
    M mlir/lib/Dialect/SCF/SCF.cpp
    M mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
    M mlir/lib/Dialect/SparseTensor/Utils/Merger.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/Transforms/SplitPadding.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorMultiDimReductionTransforms.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp
    M mlir/lib/Dialect/X86Vector/Transforms/AVXTranspose.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgElementwiseFusion.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp
    M mlir/test/lib/Dialect/Linalg/TestPadFusion.cpp
    M mlir/test/lib/Dialect/Test/TestDialect.h

  Log Message:
  -----------
  [mlir][NFC] Shift a bunch of dialect includes from the .h to the .cpp

Now that dialect constructors are generated in the .cpp file, we can
drop all of the dependent dialect includes from the .h file.

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


Compare: https://github.com/llvm/llvm-project/compare/a48300aee570...eda6f907d258


More information about the All-commits mailing list