This is an archive of the discontinued LLVM Phabricator instance.

[mlir] Refactor the implementation of Symbol use lists.
ClosedPublic

Authored by rriddle on Jan 26 2020, 1:14 AM.

Details

Summary

This revision refactors the implementation of the symbol use-list functionality to be a bit cleaner, as well as easier to reason about. Aside from code cleanup, this revision updates the user contract to never recurse into operations if they define a symbol table. The current functionality, which does recurse, makes it difficult to examine the uses held by a symbol table itself. Moving forward users may provide a specific region to examine for uses instead.

Diff Detail

Event Timeline

rriddle created this revision.Jan 26 2020, 1:14 AM

Unit tests: fail. 62150 tests passed, 5 failed and 811 were skipped.

failed: libc++.std/language_support/cmp/cmp_partialord/partialord.pass.cpp
failed: libc++.std/language_support/cmp/cmp_strongeq/cmp.strongeq.pass.cpp
failed: libc++.std/language_support/cmp/cmp_strongord/strongord.pass.cpp
failed: libc++.std/language_support/cmp/cmp_weakeq/cmp.weakeq.pass.cpp
failed: libc++.std/language_support/cmp/cmp_weakord/weakord.pass.cpp

clang-tidy: pass.

clang-format: pass.

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

Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.

mehdi_amini accepted this revision.Jan 27 2020, 8:19 PM
mehdi_amini added inline comments.
mlir/lib/IR/SymbolTable.cpp
457

Can you expand a bit the doc about what is a "scope"?

This revision is now accepted and ready to land.Jan 27 2020, 8:19 PM
rriddle updated this revision to Diff 240773.Jan 27 2020, 10:51 PM
rriddle marked an inline comment as done.

Resolve comments.

Unit tests: pass. 62196 tests passed, 0 failed and 815 were skipped.

clang-tidy: pass.

clang-format: pass.

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

Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.

This revision was automatically updated to reflect the committed changes.