[all-commits] [llvm/llvm-project] 0f952c: [mlir][IR] Change `MutableOperandRange::operator[]...

Matthias Springer via All-commits all-commits at lists.llvm.org
Mon Sep 18 00:43:16 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0f952cfe24db4f498ad7a33518758954a77f4520
  Author: Matthias Springer <me at m-sp.org>
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
    M mlir/include/mlir/IR/ValueRange.h
    M mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/IR/OperationSupport.cpp
    M mlir/lib/Transforms/Utils/CFGToSCF.cpp

  Log Message:
  [mlir][IR] Change `MutableOperandRange::operator[]` to return an `OpOperand &` (#66515)

`operator[]` returns `OpOperand &` instead of `Value`.

* This allows users to get OpOperands by name instead of "magic" number.
E.g., `extractSliceOp->getOpOperand(0)` can be written as
* `OperandRange` provides a read-only API to operands: `operator[]`
returns `Value`. `MutableOperandRange` now provides a mutable API:
`operator[]` returns `OpOperand &`, which can be used to set operands.

Note: The TableGen code generator could be changed to return `OpOperand
&` (instead of `MutableOperandRange`) for non-variadic and non-optional
arguments in a subsequent change. Then the `[0]` part in the above
example would no longer be necessary.

More information about the All-commits mailing list