[NFC][llvm] Update call graph section's name. (#163429)
Call graph section emitted by LLVM was named `.callgraph`. Renaming it to `.llvm.callgraph`.
This commit is contained in:
parent
8d66114a03
commit
cac8bdb56c
@ -1,10 +1,10 @@
|
||||
# .callgraph Section Layout
|
||||
# .llvm.callgraph Section Layout
|
||||
|
||||
The `.callgraph` section is used to store call graph information for each function. The section contains a series of records, with each record corresponding to a single function.
|
||||
The `.llvm.callgraph` section is used to store call graph information for each function. The section contains a series of records, with each record corresponding to a single function.
|
||||
|
||||
## Per Function Record Layout
|
||||
|
||||
Each record in the `.callgraph` section has the following binary layout:
|
||||
Each record in the `.llvm.callgraph` section has the following binary layout:
|
||||
|
||||
| Field | Type | Size (bits) | Description |
|
||||
| -------------------------------------- | ------------- | ----------- | ------------------------------------------------------------------------------------------------------- |
|
||||
|
||||
@ -1683,7 +1683,7 @@ static ConstantInt *extractNumericCGTypeId(const Function &F) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// Emits .callgraph section.
|
||||
/// Emits .llvm.callgraph section.
|
||||
void AsmPrinter::emitCallGraphSection(const MachineFunction &MF,
|
||||
FunctionCallGraphInfo &FuncCGInfo) {
|
||||
if (!MF.getTarget().Options.EmitCallGraphSection)
|
||||
|
||||
@ -553,7 +553,8 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {
|
||||
SFrameSection =
|
||||
Ctx->getELFSection(".sframe", ELF::SHT_GNU_SFRAME, ELF::SHF_ALLOC);
|
||||
|
||||
CallGraphSection = Ctx->getELFSection(".callgraph", ELF::SHT_PROGBITS, 0);
|
||||
CallGraphSection =
|
||||
Ctx->getELFSection(".llvm.callgraph", ELF::SHT_PROGBITS, 0);
|
||||
|
||||
StackSizesSection = Ctx->getELFSection(".stack_sizes", ELF::SHT_PROGBITS, 0);
|
||||
|
||||
@ -1171,8 +1172,8 @@ MCObjectFileInfo::getCallGraphSection(const MCSection &TextSec) const {
|
||||
}
|
||||
|
||||
return Ctx->getELFSection(
|
||||
".callgraph", ELF::SHT_PROGBITS, Flags, 0, GroupName, true,
|
||||
ElfSec.getUniqueID(),
|
||||
".llvm.callgraph", ELF::SHT_PROGBITS, Flags, 0, GroupName,
|
||||
/*IsComdat=*/true, ElfSec.getUniqueID(),
|
||||
static_cast<const MCSymbolELF *>(TextSec.getBeginSymbol()));
|
||||
}
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ entry:
|
||||
!1 = !{i64 0, !"_ZTSFivE.generalized"}
|
||||
!2 = !{i64 0, !"_ZTSFviE.generalized"}
|
||||
|
||||
; CHECK: .section .callgraph,"o",%progbits,.text
|
||||
; CHECK: .section .llvm.callgraph,"o",%progbits,.text
|
||||
;; Version
|
||||
; CHECK-NEXT: .byte 0
|
||||
;; Flags -- Potential indirect target so LSB is set to 1. Other bits are 0.
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
;; Test if temporary labels are generated for each indirect callsite.
|
||||
;; Test if the .callgraph section contains the MD5 hash of callees' type (type id)
|
||||
;; Test if the .llvm.callgraph section contains the MD5 hash of callees' type (type id)
|
||||
;; is correctly paired with its corresponding temporary label generated for indirect
|
||||
;; call sites annotated with !callee_type metadata.
|
||||
;; Test if the .callgraph section contains unique direct callees.
|
||||
;; Test if the .llvm.callgraph section contains unique direct callees.
|
||||
|
||||
; RUN: llc -mtriple=arm-unknown-linux --call-graph-section -o - < %s | FileCheck %s
|
||||
|
||||
@ -36,7 +36,7 @@ entry:
|
||||
!4 = !{!5}
|
||||
!5 = !{i64 0, !"_ZTSFPvS_E.generalized"}
|
||||
|
||||
; CHECK: .section .callgraph,"o",%progbits,.text
|
||||
; CHECK: .section .llvm.callgraph,"o",%progbits,.text
|
||||
;; Version
|
||||
; CHECK-NEXT: .byte 0
|
||||
;; Flags
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
;; Tests that we store the type identifiers in .callgraph section of the object file for tailcalls.
|
||||
;; Tests that we store the type identifiers in .llvm.callgraph section of the object file for tailcalls.
|
||||
|
||||
; RUN: llc -mtriple=arm-unknown-linux --call-graph-section -filetype=obj -o - < %s | \
|
||||
; RUN: llvm-readelf -x .callgraph - | FileCheck %s
|
||||
; RUN: llvm-readelf -x .llvm.callgraph - | FileCheck %s
|
||||
|
||||
define i32 @check_tailcall(ptr %func, i8 %x) !type !0 {
|
||||
entry:
|
||||
@ -27,7 +27,7 @@ declare !type !2 i32 @bar(i8 signext)
|
||||
!2 = !{i64 0, !"_ZTSFicE.generalized"}
|
||||
!3 = !{i64 0, !"_ZTSFiiE.generalized"}
|
||||
|
||||
; CHECK: Hex dump of section '.callgraph':
|
||||
; CHECK: Hex dump of section '.llvm.callgraph':
|
||||
; CHECK-NEXT: 0x00000000 00050000 00008e19 0b7f3326 e3000154
|
||||
; CHECK-NEXT: 0x00000010 86bc5981 4b8e3000 05100000 00a150b8
|
||||
;; Verify that the type id 0x308e4b8159bc8654 is in section.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
;; Tests that we store the type identifiers in .callgraph section of the object file.
|
||||
;; Tests that we store the type identifiers in .llvm.callgraph section of the object file.
|
||||
|
||||
; RUN: llc -mtriple=arm-unknown-linux --call-graph-section -filetype=obj -o - < %s | \
|
||||
; RUN: llvm-readelf -x .callgraph - | FileCheck %s
|
||||
; RUN: llvm-readelf -x .llvm.callgraph - | FileCheck %s
|
||||
|
||||
declare !type !0 void @foo()
|
||||
|
||||
@ -31,7 +31,7 @@ entry:
|
||||
|
||||
;; Make sure following type IDs are in call graph section
|
||||
;; 0x5eecb3e2444f731f, 0x814b8e305486bc59, 0xf897fd777ade6814
|
||||
; CHECK: Hex dump of section '.callgraph':
|
||||
; CHECK: Hex dump of section '.llvm.callgraph':
|
||||
; CHECK-NEXT: 0x00000000 00050000 00000000 00000000 00000324
|
||||
; CHECK-NEXT: 0x00000010 44f731f5 eecb3e54 86bc5981 4b8e307a
|
||||
; CHECK-NEXT: 0x00000020 de6814f8 97fd77
|
||||
|
||||
@ -27,7 +27,7 @@ entry:
|
||||
!1 = !{i64 0, !"_ZTSFivE.generalized"}
|
||||
!2 = !{i64 0, !"_ZTSFviE.generalized"}
|
||||
|
||||
; CHECK: .section .callgraph,"o",@progbits,.text
|
||||
; CHECK: .section .llvm.callgraph,"o",@progbits,.text
|
||||
;; Version
|
||||
; CHECK-NEXT: .byte 0
|
||||
;; Flags -- Potential indirect target so LSB is set to 1. Other bits are 0.
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
;; Test if temporary labels are generated for each indirect callsite.
|
||||
;; Test if the .callgraph section contains the MD5 hash of callees' type (type id)
|
||||
;; Test if the .llvm.callgraph section contains the MD5 hash of callees' type (type id)
|
||||
;; is correctly paired with its corresponding temporary label generated for indirect
|
||||
;; call sites annotated with !callee_type metadata.
|
||||
;; Test if the .callgraph section contains unique direct callees.
|
||||
;; Test if the .llvm.callgraph section contains unique direct callees.
|
||||
|
||||
; RUN: llc -mtriple=x86_64-unknown-linux --call-graph-section -o - < %s | FileCheck %s
|
||||
|
||||
@ -36,7 +36,7 @@ entry:
|
||||
!4 = !{!5}
|
||||
!5 = !{i64 0, !"_ZTSFPvS_E.generalized"}
|
||||
|
||||
; CHECK: .section .callgraph,"o",@progbits,.text
|
||||
; CHECK: .section .llvm.callgraph,"o",@progbits,.text
|
||||
;; Version
|
||||
; CHECK-NEXT: .byte 0
|
||||
;; Flags
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
;; Tests that we store the type identifiers in .callgraph section of the object file for tailcalls.
|
||||
;; Tests that we store the type identifiers in .llvm.callgraph section of the object file for tailcalls.
|
||||
|
||||
; REQUIRES: x86-registered-target
|
||||
; REQUIRES: arm-registered-target
|
||||
|
||||
; RUN: llc -mtriple=x86_64-unknown-linux --call-graph-section -filetype=obj -o - < %s | \
|
||||
; RUN: llvm-readelf -x .callgraph - | FileCheck %s
|
||||
; RUN: llvm-readelf -x .llvm.callgraph - | FileCheck %s
|
||||
|
||||
define i32 @check_tailcall(ptr %func, i8 %x) !type !0 {
|
||||
entry:
|
||||
@ -27,7 +30,7 @@ declare !type !2 i32 @bar(i8 signext)
|
||||
!2 = !{i64 0, !"_ZTSFicE.generalized"}
|
||||
!3 = !{i64 0, !"_ZTSFiiE.generalized"}
|
||||
|
||||
; CHECK: Hex dump of section '.callgraph':
|
||||
; CHECK: Hex dump of section '.llvm.callgraph':
|
||||
; CHECK-NEXT: 0x00000000 00050000 00000000 00008e19 0b7f3326
|
||||
; CHECK-NEXT: 0x00000010 e3000154 86bc5981 4b8e3000 05000000
|
||||
;; Verify that the type id 0x308e4b8159bc8654 is in section.
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
;; Tests that we store the type identifiers in .callgraph section of the object file.
|
||||
;; Tests that we store the type identifiers in .llvm.callgraph section of the object file.
|
||||
|
||||
; REQUIRES: x86-registered-target
|
||||
; REQUIRES: arm-registered-target
|
||||
|
||||
; RUN: llc -mtriple=x86_64-unknown-linux --call-graph-section -filetype=obj -o - < %s | \
|
||||
; RUN: llvm-readelf -x .callgraph - | FileCheck %s
|
||||
; RUN: llvm-readelf -x .llvm.callgraph - | FileCheck %s
|
||||
|
||||
declare !type !0 void @foo()
|
||||
|
||||
@ -31,7 +34,7 @@ entry:
|
||||
|
||||
;; Make sure following type IDs are in call graph section
|
||||
;; 0x5eecb3e2444f731f, 0x814b8e305486bc59, 0xf897fd777ade6814
|
||||
; CHECK: Hex dump of section '.callgraph':
|
||||
; CHECK: Hex dump of section '.llvm.callgraph':
|
||||
; CHECK-NEXT: 0x00000000 00050000 00000000 00000000 00000000
|
||||
; CHECK-NEXT: 0x00000010 00000324 44f731f5 eecb3e54 86bc5981
|
||||
; CHECK-NEXT: 0x00000020 4b8e307a de6814f8 97fd77
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/// (annotated by generated temporary labels .Ltmp*) are associated
|
||||
/// with the corresponding callee type identifiers.
|
||||
|
||||
// RUN: llvm-mc -triple=x86_64 -filetype=obj -o - < %s | llvm-readelf -x .callgraph - | FileCheck %s
|
||||
// RUN: llvm-mc -triple=x86_64 -filetype=obj -o - < %s | llvm-readelf -x .llvm.callgraph - | FileCheck %s
|
||||
|
||||
.text
|
||||
.globl ball # -- Begin function ball
|
||||
@ -38,7 +38,7 @@ ball: # @ball
|
||||
addq $32, %rsp
|
||||
popq %rbx
|
||||
retq
|
||||
.section .callgraph,"o",@progbits,.text
|
||||
.section .llvm.callgraph,"o",@progbits,.text
|
||||
.quad 0
|
||||
.quad .Lfunc_begin0
|
||||
.quad 1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user