[all-commits] [llvm/llvm-project] f52ec5: [llvm][DenseMapInfo] Add an info specialization fo...

River Riddle via All-commits all-commits at lists.llvm.org
Tue Apr 14 15:22:41 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f52ec5d5c088305298fa2a19e4c5b7380bcd98e8
      https://github.com/llvm/llvm-project/commit/f52ec5d5c088305298fa2a19e4c5b7380bcd98e8
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M llvm/include/llvm/ADT/DenseMapInfo.h
    M mlir/include/mlir/Support/STLExtras.h

  Log Message:
  -----------
  [llvm][DenseMapInfo] Add an info specialization for std::tuple

This revision adds a DenseMapInfo overload for std::tuples whose elements all have a DenseMapInfo. The implementation is similar to that of std::pair, and has been used within MLIR for over a year.

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


  Commit: 8cbe371c28a30ca5b0775b095a754702e57aa7ea
      https://github.com/llvm/llvm-project/commit/8cbe371c28a30ca5b0775b095a754702e57aa7ea
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/unittests/ADT/CMakeLists.txt
    A llvm/unittests/ADT/TypeTraitsTest.cpp
    M mlir/include/mlir/ADT/TypeSwitch.h
    M mlir/include/mlir/IR/Matchers.h
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/include/mlir/Pass/AnalysisManager.h
    M mlir/include/mlir/Support/STLExtras.h
    M mlir/include/mlir/Support/StorageUniquer.h
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/IR/SymbolTable.cpp

  Log Message:
  -----------
  [llvm][STLExtras] Add various type_trait utilities currently present in MLIR

This revision moves several type_trait utilities from MLIR into LLVM. Namely, this revision adds:
is_detected - This matches the experimental std::is_detected
is_invocable - This matches the c++17 std::is_invocable
function_traits - A utility traits class for getting the argument and result types of a callable type

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


  Commit: 204c3b551626a925dfdc3822a6f240bdc8ef5d3a
      https://github.com/llvm/llvm-project/commit/204c3b551626a925dfdc3822a6f240bdc8ef5d3a
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/unittests/Support/CMakeLists.txt
    A llvm/unittests/Support/IndexedAccessorTest.cpp
    M mlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h
    M mlir/include/mlir/IR/Attributes.h
    M mlir/include/mlir/IR/BlockSupport.h
    M mlir/include/mlir/IR/OpImplementation.h
    M mlir/include/mlir/IR/OperationSupport.h
    M mlir/include/mlir/IR/Region.h
    M mlir/include/mlir/IR/UseDefLists.h
    M mlir/include/mlir/Support/STLExtras.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/GPU/Transforms/MemoryPromotion.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/IR/Attributes.cpp
    M mlir/lib/IR/Module.cpp
    M mlir/lib/IR/OperationSupport.cpp
    M mlir/lib/IR/Region.cpp
    M mlir/lib/IR/SymbolTable.cpp
    M mlir/lib/Transforms/Utils/LoopUtils.cpp
    M mlir/unittests/CMakeLists.txt
    R mlir/unittests/Support/CMakeLists.txt
    R mlir/unittests/Support/IndexedAccessorTest.cpp

  Log Message:
  -----------
  [llvm][STLExtras] Move various iterator/range utilities from MLIR to LLVM

This revision moves the various range utilities present in MLIR to LLVM to enable greater reuse. This revision moves the following utilities:

* indexed_accessor_*
This is set of utility iterator/range base classes that allow for building a range class where the iterators are represented by an object+index pair.

* make_second_range
Given a range of pairs, returns a range iterating over the `second` elements.

* hasSingleElement
Returns if the given range has 1 element. size() == 1 checks end up being very common, but size() is not always O(1) (e.g., ilist). This method provides O(1) checks for those cases.

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


  Commit: 2f21a579665d44330b964cb47eece8bb9ab5a90c
      https://github.com/llvm/llvm-project/commit/2f21a579665d44330b964cb47eece8bb9ab5a90c
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M llvm/include/llvm/ADT/STLExtras.h
    M mlir/docs/Tutorials/Toy/Ch-6.md
    M mlir/docs/Tutorials/Toy/Ch-7.md
    M mlir/examples/toy/Ch1/parser/AST.cpp
    M mlir/examples/toy/Ch2/parser/AST.cpp
    M mlir/examples/toy/Ch3/parser/AST.cpp
    M mlir/examples/toy/Ch4/parser/AST.cpp
    M mlir/examples/toy/Ch5/parser/AST.cpp
    M mlir/examples/toy/Ch6/parser/AST.cpp
    M mlir/examples/toy/Ch7/mlir/Dialect.cpp
    M mlir/examples/toy/Ch7/parser/AST.cpp
    M mlir/include/mlir/IR/Diagnostics.h
    M mlir/include/mlir/IR/OpImplementation.h
    M mlir/include/mlir/Pass/PassOptions.h
    M mlir/include/mlir/Support/STLExtras.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/LoopOps/LoopOps.cpp
    M mlir/lib/Dialect/Quant/IR/TypeParser.cpp
    M mlir/lib/Dialect/SPIRV/SPIRVDialect.cpp
    M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/IR/AsmPrinter.cpp
    M mlir/lib/IR/FunctionImplementation.cpp
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Pass/PassRegistry.cpp
    M mlir/lib/Transforms/DialectConversion.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
    M mlir/test/lib/Transforms/TestMemRefStrideCalculation.cpp
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
    M mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp
    M mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
    M mlir/tools/mlir-tblgen/RewriterGen.cpp
    M mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp

  Log Message:
  -----------
  [llvm][STLExtras] Move the algorithm `interleave*` methods from MLIR to LLVM

These have proved incredibly useful for interleaving values between a range w.r.t to streams. After this revision, the mlir/Support/STLExtras.h is empty. A followup revision will remove it from the tree.

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


  Commit: ebf190fcda0b8b4e9de405ba13ddbc679550644b
      https://github.com/llvm/llvm-project/commit/ebf190fcda0b8b4e9de405ba13ddbc679550644b
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    A llvm/include/llvm/ADT/TypeSwitch.h
    M llvm/unittests/ADT/CMakeLists.txt
    A llvm/unittests/ADT/TypeSwitchTest.cpp
    M mlir/examples/toy/Ch1/parser/AST.cpp
    M mlir/examples/toy/Ch2/parser/AST.cpp
    M mlir/examples/toy/Ch3/parser/AST.cpp
    M mlir/examples/toy/Ch4/parser/AST.cpp
    M mlir/examples/toy/Ch5/parser/AST.cpp
    M mlir/examples/toy/Ch6/parser/AST.cpp
    M mlir/examples/toy/Ch7/parser/AST.cpp
    R mlir/include/mlir/ADT/TypeSwitch.h
    M mlir/include/mlir/Support/LLVM.h
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
    M mlir/lib/TableGen/Operator.cpp
    M mlir/lib/TableGen/Successor.cpp
    M mlir/lib/TableGen/Type.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/lib/Transforms/Utils/Utils.cpp
    M mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp
    R mlir/unittests/ADT/CMakeLists.txt
    R mlir/unittests/ADT/TypeSwitchTest.cpp
    M mlir/unittests/CMakeLists.txt

  Log Message:
  -----------
  [llvm][ADT] Move TypeSwitch class from MLIR to LLVM

This class implements a switch-like dispatch statement for a value of 'T' using dyn_cast functionality. Each `Case<T>` takes a callable to be invoked if the root value isa<T>, the callable is invoked with the result of dyn_cast<T>() as a parameter.

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


  Commit: 92f1562f3dd158d837c66a1dd20ae745477d9c36
      https://github.com/llvm/llvm-project/commit/92f1562f3dd158d837c66a1dd20ae745477d9c36
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    M llvm/unittests/ADT/TypeTraitsTest.cpp
    M mlir/examples/toy/Ch1/parser/AST.cpp
    M mlir/examples/toy/Ch2/parser/AST.cpp
    M mlir/examples/toy/Ch3/parser/AST.cpp
    M mlir/examples/toy/Ch4/parser/AST.cpp
    M mlir/examples/toy/Ch5/parser/AST.cpp
    M mlir/examples/toy/Ch6/parser/AST.cpp
    M mlir/examples/toy/Ch7/parser/AST.cpp
    M mlir/include/mlir/IR/Diagnostics.h
    M mlir/include/mlir/Pass/PassOptions.h
    R mlir/include/mlir/Support/STLExtras.h
    M mlir/include/mlir/Support/StorageUniquer.h
    M mlir/lib/Analysis/AffineAnalysis.cpp
    M mlir/lib/Analysis/SliceAnalysis.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/lib/Dialect/LoopOps/LoopOps.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/lib/Dialect/Vector/VectorUtils.cpp
    M mlir/lib/IR/AffineExpr.cpp
    M mlir/lib/IR/AsmPrinter.cpp
    M mlir/lib/IR/MLIRContext.cpp
    M mlir/lib/IR/StandardTypes.cpp
    M mlir/lib/Parser/Parser.cpp
    M mlir/lib/TableGen/OpTrait.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
    M mlir/tools/mlir-tblgen/DialectGen.cpp
    M mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp
    M mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
    M mlir/tools/mlir-tblgen/RewriterGen.cpp
    M mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp

  Log Message:
  -----------
  [mlir][NFC] Remove the STLExtras.h header file now that it has been merged into LLVM.

Now that no more utilities exist within, this file can be deleted.

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


Compare: https://github.com/llvm/llvm-project/compare/483f2783ae01...92f1562f3dd1


More information about the All-commits mailing list