[all-commits] [llvm/llvm-project] 18546f: [mlir:Bytecode] Add shared_ptr<SourceMgr> overload...

River Riddle via All-commits all-commits at lists.llvm.org
Sun Dec 11 22:45:57 PST 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 18546ff8dd45a81e72c0a2ed0561b5aec8c15ca3
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-12-11 (Sun, 11 Dec 2022)

  Changed paths:
    M mlir/include/mlir/Bytecode/BytecodeReader.h
    M mlir/include/mlir/IR/AsmState.h
    M mlir/include/mlir/Parser/Parser.h
    M mlir/include/mlir/Tools/ParseUtilities.h
    M mlir/include/mlir/Tools/mlir-translate/Translation.h
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
    M mlir/lib/ExecutionEngine/JitRunner.cpp
    M mlir/lib/Parser/Parser.cpp
    M mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
    M mlir/lib/Tools/mlir-reduce/MlirReduceMain.cpp
    M mlir/lib/Tools/mlir-translate/MlirTranslateMain.cpp
    M mlir/lib/Tools/mlir-translate/Translation.cpp

  Log Message:
  [mlir:Bytecode] Add shared_ptr<SourceMgr> overloads to allow safe mmap of data

The bytecode reader currently has no mechanism that allows for directly referencing
data from the input buffer safely. This commit adds shared_ptr<SourceMgr> overloads
that provide an explicit and safe way of extending the lifetime of the input. The usage of
these new overloads is adopted in all of our tooling, and is implicitly used in the filename
only parser methods.

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

  Commit: 62fec084d67af5b3d55b09271a5b9aab604698f5
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-12-11 (Sun, 11 Dec 2022)

  Changed paths:
    M mlir/include/mlir/IR/Operation.h
    M mlir/include/mlir/IR/Value.h
    M mlir/include/mlir/Support/InterfaceSupport.h
    A mlir/utils/lldb-scripts/mlirDataFormatters.py

  Log Message:
  [mlir] Add LLDB visualizers for MLIR constructs

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

Compare: https://github.com/llvm/llvm-project/compare/9cbd2959c156...62fec084d67a

More information about the All-commits mailing list