[all-commits] [llvm/llvm-project] 534064: [mlir] FunctionOpInterface: turn required attribut...
Jeff Niu via All-commits
all-commits at lists.llvm.org
Sat Dec 10 15:17:23 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 53406427cdf4290986d1a48ea0d582ad195bff15
https://github.com/llvm/llvm-project/commit/53406427cdf4290986d1a48ea0d582ad195bff15
Author: Jeff Niu <jeff at modular.com>
Date: 2022-12-10 (Sat, 10 Dec 2022)
Changed paths:
M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
M mlir/examples/toy/Ch2/include/toy/Ops.td
M mlir/examples/toy/Ch2/mlir/Dialect.cpp
M mlir/examples/toy/Ch3/include/toy/Ops.td
M mlir/examples/toy/Ch3/mlir/Dialect.cpp
M mlir/examples/toy/Ch4/include/toy/Ops.td
M mlir/examples/toy/Ch4/mlir/Dialect.cpp
M mlir/examples/toy/Ch5/include/toy/Ops.td
M mlir/examples/toy/Ch5/mlir/Dialect.cpp
M mlir/examples/toy/Ch6/include/toy/Ops.td
M mlir/examples/toy/Ch6/mlir/Dialect.cpp
M mlir/examples/toy/Ch7/include/toy/Ops.td
M mlir/examples/toy/Ch7/mlir/Dialect.cpp
M mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
M mlir/include/mlir/Dialect/Func/IR/FuncOps.td
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/include/mlir/Dialect/MLProgram/IR/MLProgramOps.td
M mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td
M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
M mlir/include/mlir/IR/FunctionImplementation.h
M mlir/include/mlir/IR/FunctionInterfaces.h
M mlir/include/mlir/IR/FunctionInterfaces.td
M mlir/include/mlir/IR/OpBase.td
M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/lib/Dialect/Async/IR/Async.cpp
M mlir/lib/Dialect/Func/IR/FuncOps.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/MLProgram/IR/MLProgramOps.cpp
M mlir/lib/Dialect/PDLInterp/IR/PDLInterp.cpp
M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/lib/IR/FunctionImplementation.cpp
M mlir/lib/IR/FunctionInterfaces.cpp
M mlir/test/IR/invalid-func-op.mlir
Log Message:
-----------
[mlir] FunctionOpInterface: turn required attributes into interface methods (Reland)
Reland D139447, D139471 With flang actually working
- FunctionOpInterface: make get/setFunctionType interface methods
This patch removes the concept of a `function_type`-named type attribute
as a requirement for implementors of FunctionOpInterface. Instead, this
type should be provided through two interface methods, `getFunctionType`
and `setFunctionTypeAttr` (*Attr because functions may use different
concrete function types), which should be automatically implemented by
ODS for ops that define a `$function_type` attribute.
This also allows FunctionOpInterface to materialize function types if
they don't carry them in an attribute, for example.
Importantly, all the function "helper" still accept an attribute name to
use in parsing and printing functions, for example.
- FunctionOpInterface: arg and result attrs dispatch to interface
This patch removes the `arg_attrs` and `res_attrs` named attributes as a
requirement for FunctionOpInterface and replaces them with interface
methods for the getters, setters, and removers of the relevent
attributes. This allows operations to use their own storage for the
argument and result attributes.
Reviewed By: jpienaar
Differential Revision: https://reviews.llvm.org/D139736
More information about the All-commits
mailing list