[all-commits] [llvm/llvm-project] c0fd5e: [mlir] Add traits for verifying the number of succ...
River Riddle via All-commits
all-commits at lists.llvm.org
Thu Mar 5 12:58:42 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: c0fd5e657e5d38a480d65b4e8f6f7a835afd6c76
https://github.com/llvm/llvm-project/commit/c0fd5e657e5d38a480d65b4e8f6f7a835afd6c76
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/IR/OpDefinition.h
M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
M mlir/lib/IR/Operation.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/test/Dialect/SPIRV/control-flow-ops.mlir
M mlir/test/mlir-tblgen/op-decl.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
[mlir] Add traits for verifying the number of successors and providing relevant accessors.
This allows for simplifying OpDefGen, as well providing specializing accessors for the different successor counts. This mirrors the existing traits for operands and results.
Differential Revision: https://reviews.llvm.org/D75313
Commit: 621d7cca3751f934f991e34fe0e26187c33314f4
https://github.com/llvm/llvm-project/commit/621d7cca3751f934f991e34fe0e26187c33314f4
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/Analysis/CMakeLists.txt
A mlir/include/mlir/Analysis/ControlFlowInterfaces.h
A mlir/include/mlir/Analysis/ControlFlowInterfaces.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td
M mlir/include/mlir/Dialect/SPIRV/SPIRVOps.h
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.h
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
M mlir/include/mlir/IR/OperationSupport.h
M mlir/lib/Analysis/CMakeLists.txt
A mlir/lib/Analysis/ControlFlowInterfaces.cpp
M mlir/lib/Dialect/LLVMIR/CMakeLists.txt
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/SPIRV/CMakeLists.txt
M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
M mlir/lib/Dialect/StandardOps/CMakeLists.txt
M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
M mlir/lib/IR/Operation.cpp
M mlir/lib/IR/OperationSupport.cpp
M mlir/test/lib/TestDialect/CMakeLists.txt
M mlir/test/lib/TestDialect/TestDialect.cpp
M mlir/test/lib/TestDialect/TestDialect.h
M mlir/test/lib/TestDialect/TestOps.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
[mlir] Add a new BranchOpInterface to allow for opaquely interfacing with branching terminator operations.
This interface contains the necessary components to provide the same builtin behavior that terminators have. This will be used in future revisions to remove many of the hardcoded constraints placed on successors and successor operands. The interface initially contains three methods:
```c++
// Return a set of values corresponding to the operands for successor 'index', or None if the operands do not correspond to materialized values.
Optional<OperandRange> getSuccessorOperands(unsigned index);
// Return true if this terminator can have it's successor operands erased.
bool canEraseSuccessorOperand();
// Erase the operand of a successor. This is only valid to call if 'canEraseSuccessorOperand' returns true.
void eraseSuccessorOperand(unsigned succIdx, unsigned opIdx);
```
Differential Revision: https://reviews.llvm.org/D75314
Commit: 01f7431b5be2be7a6e2de933a4ae883a803502f6
https://github.com/llvm/llvm-project/commit/01f7431b5be2be7a6e2de933a4ae883a803502f6
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
M mlir/include/mlir/Dialect/VectorOps/VectorOps.td
M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
M mlir/lib/Dialect/VectorOps/VectorOps.cpp
M mlir/test/Conversion/LoopsToGPU/parallel_loop.mlir
M mlir/test/Dialect/Linalg/fusion.mlir
M mlir/test/Dialect/Linalg/promote.mlir
M mlir/test/Dialect/Linalg/tile.mlir
M mlir/test/Dialect/Linalg/tile_conv.mlir
M mlir/test/Dialect/Linalg/tile_parallel.mlir
M mlir/test/Dialect/Linalg/transform-patterns.mlir
M mlir/test/IR/core-ops.mlir
M mlir/test/Transforms/canonicalize.mlir
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir][DeclarativeParser] Add support for formatting operations with AttrSizedOperandSegments.
This attribute details the segment sizes for operand groups within the operation. This revision add support for automatically populating this attribute in the declarative parser.
Differential Revision: https://reviews.llvm.org/D75315
Commit: 988249a5060c761a37d1dff3bd260aa7770f9f99
https://github.com/llvm/llvm-project/commit/988249a5060c761a37d1dff3bd260aa7770f9f99
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/IR/Block.h
M mlir/include/mlir/IR/OperationSupport.h
M mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp
M mlir/lib/Dialect/AffineOps/AffineOps.cpp
M mlir/lib/IR/Block.cpp
M mlir/lib/IR/OperationSupport.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
M mlir/lib/Transforms/Utils/RegionUtils.cpp
M mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
Log Message:
-----------
[mlir] Refactor a few users to no longer rely on the successor operand API of Operation.
The existing API for successor operands on operations is in the process of being removed. This revision simplifies a later one that completely removes the existing API.
Differential Revision: https://reviews.llvm.org/D75316
Commit: c98cff5ae4325875c416a395073a3830b52df894
https://github.com/llvm/llvm-project/commit/c98cff5ae4325875c416a395073a3830b52df894
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
M mlir/include/mlir/Dialect/VectorOps/VectorOps.td
M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
M mlir/test/mlir-tblgen/op-result.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
[mlir] Automatically populate `operand_segment_sizes` in the auto-generated build methods.
This greatly simplifies the requirements for builders using this mechanism for managing variadic operands.
Differential Revision: https://reviews.llvm.org/D75317
Commit: cb1777127c0f4a908c46dbbe8a948d8549427112
https://github.com/llvm/llvm-project/commit/cb1777127c0f4a908c46dbbe8a948d8549427112
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-03-05 (Thu, 05 Mar 2020)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td
M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
M mlir/include/mlir/IR/OpDefinition.h
M mlir/include/mlir/IR/OpImplementation.h
M mlir/include/mlir/IR/Operation.h
M mlir/include/mlir/IR/OperationSupport.h
M mlir/include/mlir/IR/UseDefLists.h
M mlir/include/mlir/Transforms/DialectConversion.h
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
M mlir/lib/IR/AsmPrinter.cpp
M mlir/lib/IR/Operation.cpp
M mlir/lib/IR/OperationSupport.cpp
M mlir/lib/Parser/Parser.cpp
M mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
M mlir/lib/Transforms/DialectConversion.cpp
M mlir/lib/Transforms/Utils/RegionUtils.cpp
M mlir/test/Dialect/SPIRV/control-flow-ops.mlir
M mlir/test/IR/invalid.mlir
M mlir/test/IR/parser.mlir
M mlir/test/Transforms/canonicalize-dce.mlir
M mlir/test/lib/TestDialect/TestOps.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir] Remove successor operands from the Operation class
Summary:
This revision removes all of the functionality related to successor operands on the core Operation class. This greatly simplifies a lot of handling of operands, as well as successors. For example, DialectConversion no longer needs a special "matchAndRewrite" for branching terminator operations.(Note, the existing method was also broken for operations with variadic successors!!)
This also enables terminator operations to define their own relationships with successor arguments, instead of the hardcoded "pass-through" behavior that exists today.
Differential Revision: https://reviews.llvm.org/D75318
Compare: https://github.com/llvm/llvm-project/compare/a7c655f1480f...cb1777127c0f
More information about the All-commits
mailing list