[all-commits] [llvm/llvm-project] 0d6ebb: [mlir] Refactor operation results to use a single ...

River Riddle via All-commits all-commits at lists.llvm.org
Mon Dec 30 21:22:52 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0d6ebb4f0dd7ca81bdfc2a210b1d5ef46e0c9587
      https://github.com/llvm/llvm-project/commit/0d6ebb4f0dd7ca81bdfc2a210b1d5ef46e0c9587
  Author: River Riddle <riverriddle at google.com>
  Date:   2019-12-30 (Mon, 30 Dec 2019)

  Changed paths:
    M mlir/include/mlir/IR/Block.h
    M mlir/include/mlir/IR/Operation.h
    M mlir/include/mlir/IR/UseDefLists.h
    M mlir/include/mlir/IR/Value.h
    M mlir/lib/IR/Operation.cpp
    M mlir/lib/IR/Value.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp

  Log Message:
  -----------
  [mlir] Refactor operation results to use a single use list for all results of the operation.

Summary: 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.

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D71955




More information about the All-commits mailing list