mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 04:56:07 +00:00

This commit adds a significant amount of visualizers attempting to cover the majority of our visualization needs. It covers: * Operations/OperationName/Ops/OpInterfaces * Attributes/Types/Attr|TypeInterfaces/NamedAttribute * Blocks/Regions * Various range types (e.g. ValueRange/TypeRange) * Values/BlockArguments/OpResults This does require an NFC change to interfaces to rename the concept field to avoid clash with the base class. It also requires exposing a few method to the debugger to help resolve information that is non-trivial to reconstruct. These methods are re-exported using a debug_Blah naming scheme to avoid messing with hot methods. Note that this makes use of the new callback feature in lldb-16 (currently trunk) that allows for providing visualizers based on a dynamic callback, instead of just the typename. It requires a very new lldb, but allows for providing good default visualization for all attributes/operations/types out of the box. Differential Revision: https://reviews.llvm.org/D139602