.text.Impossible 在 ELF 对象文件中是什么意思?



在我的objdump -t输出中,我看到以下两行:

00000000000004d2 l     F .text.unlikely 00000000000000ec function-signature-goes-here [clone .cold.427]

00000000000018e0 g     F .text  0000000000000690 function-signature-goes-here

我知道l意味着本地,g意味着全球。我还知道.text是目标文件中包含编译的程序指令的部分或部分类型。但什么是.text.unlikely?假设它是与.text不同的部分(或部分类型( - 有什么区别?

在我的 GCC v5.4.0 手册页中,我发现了以下开关:

-freorder-functions其中说:

对目标文件中的函数重新排序以改进代码 地区。 这是通过使用特殊小节实现的 ".text.hot"表示最常执行的函数和 ".text.unpossible"表示不太可能执行的函数。 重新排序已完成 通过链接器,因此对象文件格式必须支持命名节和 链接器必须以合理的方式放置它们。

此外,配置文件反馈必须可用才能使此选项有效。 有关详细信息,请参见 -fprofile-arcs。

在级别 -O2、-O3、-OS 启用。

看起来编译器是使用优化标志或为此二进制文件切换的,并且函数按子部分组织以优化空间局部性。

相关内容

  • 没有找到相关文章

最新更新