[PATCH] D128111: [BOLT] Allow function entry to be a cold fragment
Huan Nguyen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 17 20:16:06 PDT 2022
nhuhuan updated this revision to Diff 438093.
nhuhuan marked an inline comment as done.
nhuhuan added a comment.
Improve robustness of test case
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128111/new/
https://reviews.llvm.org/D128111
Files:
bolt/lib/Rewrite/RewriteInstance.cpp
bolt/test/X86/shared_object_entry.s
Index: bolt/test/X86/shared_object_entry.s
===================================================================
--- /dev/null
+++ bolt/test/X86/shared_object_entry.s
@@ -0,0 +1,38 @@
+# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
+# RUN: ld.lld %t.o -o %t.so --shared --entry=func1.cold.1 --emit-relocs
+# RUN: llvm-bolt -relocs %t.so -o %t -reorder-functions=hfsort+ \
+# RUN: -split-functions=3 -reorder-blocks=ext-tsp -split-all-cold \
+# RUN: -dyno-stats -icf=1 -use-gnu-stack
+
+# Check that an entry point is a cold symbol
+# RUN: llvm-readelf -h %t.so > %t.log
+# RUN: llvm-nm %t.so >> %t.log
+# RUN: FileCheck %s --input-file %t.log
+# CHECK: Entry point address: 0x[[#%X,ENTRY:]]
+# CHECK: [[#%x,ENTRY]] {{.*}} func1.cold.1
+
+.globl func1.cold.1
+.type func1.cold.1, at function
+func1.cold.1:
+ .cfi_startproc
+.L1:
+ movq %rbx, %rdx
+ jmp .L3
+.L2:
+ # exit(0)
+ movq $60, %rax
+ xorq %rdi, %rdi
+ syscall
+ .size func1.cold.1, .-func1.cold.1
+ .cfi_endproc
+
+.globl func1
+.type func1, at function
+func1:
+ .cfi_startproc
+.L3:
+ movq %rax, %rdi
+ jmp .L2
+ call exit
+ .size func1, .-func1
+ .cfi_endproc
Index: bolt/lib/Rewrite/RewriteInstance.cpp
===================================================================
--- bolt/lib/Rewrite/RewriteInstance.cpp
+++ bolt/lib/Rewrite/RewriteInstance.cpp
@@ -5207,8 +5207,6 @@
if (!Function)
return 0;
- assert(!Function->isFragment() && "cannot get new address for a fragment");
-
return Function->getOutputAddress();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D128111.438093.patch
Type: text/x-patch
Size: 1537 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220618/3b5b0bb9/attachment-0001.bin>
More information about the llvm-commits
mailing list