[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