[all-commits] [llvm/llvm-project] 26d811: [mlir] Make use of C++17 language features

zero9178 via All-commits all-commits at lists.llvm.org
Sun Aug 7 02:17:02 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 26d811b3ecd2fa1ca3d9b41e17fb42b8c7ad03d6
  Author: Markus Böck <markus.boeck02 at gmail.com>
  Date:   2022-08-07 (Sun, 07 Aug 2022)

  Changed paths:
    M mlir/examples/standalone/CMakeLists.txt
    M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
    M mlir/include/mlir/ExecutionEngine/ExecutionEngine.h
    M mlir/include/mlir/IR/BuiltinAttributes.h
    M mlir/include/mlir/IR/BuiltinTypes.td
    M mlir/include/mlir/IR/Dialect.h
    M mlir/include/mlir/IR/DialectRegistry.h
    M mlir/include/mlir/IR/Matchers.h
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/include/mlir/IR/StorageUniquerSupport.h
    M mlir/include/mlir/Support/InterfaceSupport.h
    M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
    M mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Tosa/Transforms/TosaLayerwiseConstantFoldPass.cpp
    M mlir/lib/IR/BuiltinTypes.cpp

  Log Message:
  [mlir] Make use of C++17 language features

Now that C++17 is enabled in LLVM, a lot of the TODOs and patterns to emulate C++17 features can be eliminated.
The steps I have taken were essentially:
git grep C++17
git grep c++17
git grep "initializer_list<int>"
and address given comments and patterns.
Most of the changes boiled down to just using fold expressions rather than initializer_list.

While doing this I also discovered that Clang by default restricts the depth of fold expressions to 256 elements. I specifically hit this with `TestDialect` in `addOperations`. I opted to not replace it with fold expressions because of that but instead adding a comment documenting the issue.
If any other functions may be called with more than 256 elements in the future we might have to revert other parts as well.
I don't think this is a common occurence besides the `TestDialect` however. If need be, this could potentially be fixed via `mlir-tblgen` in the future.

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

More information about the All-commits mailing list