[clang] [llvm] [llvm][AsmPrinter] Emit call graph section (PR #87576)
Prabhu Rajasekaran via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 31 09:28:07 PDT 2025
================
@@ -190,6 +190,36 @@ class LLVM_ABI AsmPrinter : public MachineFunctionPass {
/// Emit comments in assembly output if this is true.
bool VerboseAsm;
+ /// Store symbols and type identifiers used to create call graph section
+ /// entries related to a function.
+ struct FunctionInfo {
+ /// Numeric type identifier used in call graph section for indirect calls
+ /// and targets.
+ using CGTypeId = uint64_t;
+
+ /// Enumeration of function kinds, and their mapping to function kind values
+ /// stored in call graph section entries.
+ /// Must match the enum in llvm/tools/llvm-objdump/llvm-objdump.cpp.
+ enum class FunctionKind : uint64_t {
+ /// Function cannot be target to indirect calls.
+ NOT_INDIRECT_TARGET = 0,
+
+ /// Function may be target to indirect calls but its type id is unknown.
+ INDIRECT_TARGET_UNKNOWN_TID = 1,
+
+ /// Function may be target to indirect calls and its type id is known.
+ INDIRECT_TARGET_KNOWN_TID = 2,
+ };
+
+ /// Map type identifiers to callsite labels. Labels are only for indirect
+ /// calls and inclusive of all indirect calls of the function.
----------------
Prabhuk wrote:
Reworded the inline comments. PTAL.
https://github.com/llvm/llvm-project/pull/87576
More information about the llvm-commits
mailing list