Skip to content

Commit 3220571

Browse files
committed
[llvm-profgen] Skip disassembling for PLT section
Skip disassembling .plt section, then .plt section code will be treated as external code. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D115699
1 parent d7b7b64 commit 3220571

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

llvm/test/tools/llvm-profgen/inline-noprobe2.test

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,8 @@
88
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/inline-noprobe2.perfscript --binary=%S/Inputs/inline-noprobe2.perfbin --output=%t --populate-profile-symbol-list=1
99
; RUN: llvm-profdata show -show-prof-sym-list -sample %t | FileCheck %s --check-prefix=CHECK-SYM-LIST
1010

11-
; CHECK-ARTIFICIAL-BRANCH: 3
12-
; CHECK-ARTIFICIAL-BRANCH: 400540-400540:1
13-
; CHECK-ARTIFICIAL-BRANCH: 400870-400870:2
14-
; CHECK-ARTIFICIAL-BRANCH: 400875-4008bf:1
15-
; CHECK-ARTIFICIAL-BRANCH: 2
16-
; CHECK-ARTIFICIAL-BRANCH: 400870->400540:2
17-
; CHECK-ARTIFICIAL-BRANCH: 4008bf->400870:2
11+
; CHECK-ARTIFICIAL-BRANCH: 0
12+
; CHECK-ARTIFICIAL-BRANCH: 0
1813

1914
; CHECK-SYM-LIST: Dump profile symbol list
2015
; CHECK-SYM-LIST: main
@@ -78,16 +73,16 @@
7873
;CHECK: 1: 5
7974
;CHECK: 2: 5
8075
;CHECK: 3: 5
81-
;CHECK: main:820:0
76+
;CHECK: main:486:0
8277
;CHECK: 0: 0
8378
;CHECK: 3: 0
8479
;CHECK: 4.1: 0
8580
;CHECK: 4.3: 0
86-
;CHECK: 5.1: 10
87-
;CHECK: 5.3: 10
88-
;CHECK: 6: 10
89-
;CHECK: 6.1: 12
90-
;CHECK: 6.3: 10
81+
;CHECK: 5.1: 6
82+
;CHECK: 5.3: 6
83+
;CHECK: 6: 6
84+
;CHECK: 6.1: 6
85+
;CHECK: 6.3: 6
9186
;CHECK: 7: 0
9287
;CHECK: 8: 0 quick_sort:1
9388
;CHECK: 9: 0

llvm/tools/llvm-profgen/ProfiledBinary.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,14 +545,18 @@ void ProfiledBinary::disassemble(const ELFObjectFileBase *Obj) {
545545
// Register the text section.
546546
TextSections.insert({SectionOffset, SectSize});
547547

548+
StringRef SectionName = unwrapOrError(Section.getName(), FileName);
549+
548550
if (ShowDisassemblyOnly) {
549-
StringRef SectionName = unwrapOrError(Section.getName(), FileName);
550551
outs() << "\nDisassembly of section " << SectionName;
551552
outs() << " [" << format("0x%" PRIx64, Section.getAddress()) << ", "
552553
<< format("0x%" PRIx64, Section.getAddress() + SectSize)
553554
<< "]:\n\n";
554555
}
555556

557+
if (SectionName == ".plt")
558+
continue;
559+
556560
// Get the section data.
557561
ArrayRef<uint8_t> Bytes =
558562
arrayRefFromStringRef(unwrapOrError(Section.getContents(), FileName));

0 commit comments

Comments
 (0)