mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 18:56:43 +00:00
[BOLT] Allow sections in --print-only flag (#109622)
While printing functions, expand --print-only flag to accept section names. E.g., "--print-only=\.init" will only print functions from ".init" section.
This commit is contained in:
parent
1bfca99909
commit
4db0cc4c55
@ -165,6 +165,12 @@ bool shouldPrint(const BinaryFunction &Function) {
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<StringRef> Origin = Function.getOriginSectionName();
|
||||
if (Origin && llvm::any_of(opts::PrintOnly, [&](const std::string &Name) {
|
||||
return Name == *Origin;
|
||||
}))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
29
bolt/test/X86/print-only-section.s
Normal file
29
bolt/test/X86/print-only-section.s
Normal file
@ -0,0 +1,29 @@
|
||||
## Check that --print-only flag works with sections.
|
||||
|
||||
# REQUIRES: system-linux
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.out --print-cfg --print-only=unused_code 2>&1 \
|
||||
# RUN: | FileCheck %s
|
||||
|
||||
# CHECK: Binary Function "foo"
|
||||
# CHECK-NOT: Binary Function "_start"
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
.type _start, %function
|
||||
_start:
|
||||
.cfi_startproc
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size _start, .-_start
|
||||
|
||||
.section unused_code,"ax",@progbits
|
||||
.globl foo
|
||||
.type foo, %function
|
||||
foo:
|
||||
.cfi_startproc
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size foo, .-foo
|
Loading…
x
Reference in New Issue
Block a user