[all-commits] [llvm/llvm-project] 31bb8e: [mlir][StorageUniquer] Properly call the destructo...

River Riddle via All-commits all-commits at lists.llvm.org
Thu Mar 11 11:35:57 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 31bb8efd698304a8385ff79229ffbaa5613efdfb
      https://github.com/llvm/llvm-project/commit/31bb8efd698304a8385ff79229ffbaa5613efdfb
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-03-11 (Thu, 11 Mar 2021)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIRDialect.h
    M flang/lib/Optimizer/Dialect/FIRAttr.cpp
    M flang/lib/Optimizer/Dialect/FIRDialect.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    M mlir/docs/Tutorials/DefiningAttributesAndTypes.md
    M mlir/docs/Tutorials/Toy/Ch-7.md
    M mlir/examples/toy/Ch7/mlir/Dialect.cpp
    M mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
    M mlir/include/mlir/IR/BuiltinDialect.td
    M mlir/include/mlir/Support/StorageUniquer.h
    M mlir/lib/Dialect/ArmSVE/IR/ArmSVEDialect.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/PDL/IR/PDL.cpp
    M mlir/lib/Dialect/PDL/IR/PDLTypes.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVAttributes.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/IR/BuiltinAttributes.cpp
    M mlir/lib/IR/BuiltinDialect.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/IR/Location.cpp
    M mlir/lib/Support/StorageUniquer.cpp
    M mlir/test/lib/Dialect/Test/TestAttributes.cpp
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Test/TestTypes.cpp
    M mlir/unittests/Support/CMakeLists.txt
    A mlir/unittests/Support/StorageUniquerTest.cpp

  Log Message:
  -----------
  [mlir][StorageUniquer] Properly call the destructor on non-trivially destructible storage instances

This allows for storage instances to store data that isn't uniqued in the context, or contain otherwise non-trivial logic, in the rare situations that they occur. Storage instances with trivial destructors will still have their destructor skipped. A consequence of this is that the storage instance definition must be visible from the place that registers the type.

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




More information about the All-commits mailing list