[PATCH] D71955: [mlir] Refactor operation results to use a single use list for all results of the operation.

River Riddle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 27 22:52:48 PST 2019


rriddle created this revision.
rriddle added reviewers: mehdi_amini, jpienaar.
Herald added subscribers: llvm-commits, antiagainst, shauheen, burmako.
Herald added a project: LLVM.

A new class is added, IRMultiObjectWithUseList, that allows for representing an IR use list that holds multiple sub values(used in this case for OpResults). This class provides all of the same functionality as the base IRObjectWithUseList, but for specific sub-values. This saves a word per operation result and is a necessary step in optimizing the layout of operation results. For now the use list is placed on the operation itself, so zero-result operations grow by a word. When the work for optimizing layout is finished, this can be moved back to being a trailing object based on memory/runtime benchmarking.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71955

Files:
  mlir/include/mlir/IR/Block.h
  mlir/include/mlir/IR/Operation.h
  mlir/include/mlir/IR/UseDefLists.h
  mlir/include/mlir/IR/Value.h
  mlir/lib/IR/Operation.cpp
  mlir/lib/IR/Value.cpp
  mlir/lib/Transforms/ViewOpGraph.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71955.235460.patch
Type: text/x-patch
Size: 29903 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191228/07438f4e/attachment.bin>


More information about the llvm-commits mailing list