This is an archive of the discontinued LLVM Phabricator instance.

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

Authored by rriddle on Dec 27 2019, 10:51 PM.

Details

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.

Diff Detail

Event Timeline

rriddle created this revision.Dec 27 2019, 10:51 PM
rriddle updated this revision to Diff 235461.Dec 27 2019, 11:03 PM

Update diff

Unit tests: pass. 61132 tests passed, 0 failed and 728 were skipped.

clang-tidy: fail. Please fix clang-tidy findings.

clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or applying this patch.

Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

Unit tests: pass. 61132 tests passed, 0 failed and 728 were skipped.

clang-tidy: fail. Please fix clang-tidy findings.

clang-format: pass.

Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

jpienaar accepted this revision.Dec 30 2019, 12:51 PM

Looks good as part of optimizing the size, thanks

This revision is now accepted and ready to land.Dec 30 2019, 12:51 PM
rriddle updated this revision to Diff 235642.Dec 30 2019, 2:23 PM

Formatted diff.

Unit tests: pass. 61154 tests passed, 0 failed and 728 were skipped.

clang-tidy: fail. Please fix clang-tidy findings.

clang-format: pass.

Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

This revision was automatically updated to reflect the committed changes.