-dot-machine-cfg for printing MachineFunction to a dot file
authorChristudasan Devadasan <Christudasan.Devadasan@amd.com>
Thu, 22 Sep 2022 05:19:46 +0000 (10:49 +0530)
committerChristudasan Devadasan <Christudasan.Devadasan@amd.com>
Thu, 22 Sep 2022 07:18:33 +0000 (12:48 +0530)
commit32a8260ccc8bc87134df6417c6deb0f4172bc4bf
tree97a1cdd732d250cbd5898315f001add2d646fd68
parente500f8f8a826e5dd7aa95b4dc98fedc7e824b81b
-dot-machine-cfg for printing MachineFunction to a dot file

This pass allows a user to dump a MIR function to a dot file
and view it as a graph. It is targeted to provide a similar
functionality as -dot-cfg pass on LLVM-IR. As of now the pass
also support below flags:
-dot-mcfg-only [optional][won't print instructions in the
graph just block name]
-mcfg-dot-filename-prefix [optional][prefix to add to output dot file]
-mcfg-func-name [optional] [specify function name or it's
substring, handy if mir file contains multiple functions and
you need to see graph of just one]

More flags and details can be introduced as per the requirements
in future. This pass is inspired from -dot-cfg IR pass and APIs
are written in almost identical format.

Patch by Yashwant Singh <Yashwant.Singh@amd.com> (yassingh)

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D133709
llvm/include/llvm/Analysis/CFGPrinter.h
llvm/include/llvm/CodeGen/MachineCFGPrinter.h [new file with mode: 0644]
llvm/include/llvm/CodeGen/MachinePassRegistry.def
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/CodeGen.cpp
llvm/lib/CodeGen/MachineCFGPrinter.cpp [new file with mode: 0644]
llvm/test/Analysis/DotMachineCFG/AMDGPU/functions.mir [new file with mode: 0644]
llvm/test/Analysis/DotMachineCFG/AMDGPU/irreducible.mir [new file with mode: 0644]
llvm/test/Analysis/DotMachineCFG/AMDGPU/lit.local.cfg [new file with mode: 0644]