[PATCH] D74226: [mlir][spirv] Introduce spv.function

River Riddle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 7 14:34:29 PST 2020


rriddle added a comment.

I would actually prefer that we call this FuncOp('func'). It is consistent with all of the other functions that have been defined, and seems a little weird to deviate. For example, spirv::ModuleOp/ConstantOp are also named the same as other common ops.



================
Comment at: mlir/include/mlir/Dialect/SPIRV/SPIRVOps.h:49
+// spirv::Function ops hash just like pointers.
+template <> struct DenseMapInfo<mlir::spirv::FunctionOp> {
+  static mlir::spirv::FunctionOp getEmptyKey() {
----------------
Could we auto-generate these in OpDefGen?


================
Comment at: mlir/lib/Dialect/SPIRV/SPIRVOps.cpp:79
+static FunctionType getEnclosingFuncOpType(Operation *op) {
+  auto funcOp = op->getParentOfType<FuncOpTy>();
+  if (!funcOp)
----------------
if (auto funcOp = ...)
  return funcOp.getType();
return FunctionType();

?


================
Comment at: mlir/lib/Dialect/SPIRV/SPIRVOps.cpp:1782
+  auto oldType = getType();
+  for (int i = newType.getNumInputs(), e = oldType.getNumInputs(); i < e; i++) {
+    removeAttr(getArgAttrName(i, nameBuf));
----------------
Drop trivial brace.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74226/new/

https://reviews.llvm.org/D74226





More information about the llvm-commits mailing list