This is an archive of the discontinued LLVM Phabricator instance.

[mlir] Give each OpResult its own use list
ClosedPublic

Authored by rriddle on Apr 23 2020, 4:22 AM.

Details

Summary

This revision removes the multi use-list to ensure that each result gets its own. This decision was made by doing some extensive benchmarking of programs that actually use multiple results. This results in a size increase of 1-word per result >1, but the common case of 1-result remains unaffected. A side benefit is that 0-result operations now shrink by 1-word.

Diff Detail

Event Timeline

rriddle created this revision.Apr 23 2020, 4:22 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 23 2020, 4:22 AM

My pass execution goes from 123.4811 seconds to 0.4536 seconds... This is just amazing :)

My pass execution goes from 123.4811 seconds to 0.4536 seconds... This is just amazing :)

270x speedup nothing to sneeze at ;-)

mehdi_amini accepted this revision.Apr 23 2020, 2:43 PM
mehdi_amini added inline comments.
mlir/lib/IR/OperationSupport.cpp
141

"Otherwise" seems misplaced here

This revision is now accepted and ready to land.Apr 23 2020, 2:43 PM
rriddle updated this revision to Diff 259753.Apr 23 2020, 4:22 PM
rriddle marked an inline comment as done.

Resolve comments

This revision was automatically updated to reflect the committed changes.