相关疑难解决方法(0)

GCC热属性的语义

假设我有一个由三个函数A,B和C组成的编译单元.从编译单元外部的函数调用一次(例如,它是一个入口点或回调函数); A被A多次调用(例如,它在紧密循环中被调用); 每次调用B都会调用一次C(例如,它是一个库函数).

通过A(通过B和C)的整个路径对性能至关重要,尽管A本身的性能不是关键的(因为大部分时间花在B和C上).

什么是应该注释的最小函数集,__attribute__ ((hot))以实现对此路径的更积极的优化?假设我们不能使用-fprofile-generate.

等价:__attribute__ ((hot))是指"优化此函数的主体","优化对此函数的调用","优化此函数所做的所有后代调用",还是它们的某种组合?

GCC信息页面没有明确解决这些问题.

optimization gcc

13
推荐指数
1
解决办法
7309
查看次数

如何使用gcc工具链强制二进制函数的顺序?

我正在从几个源文件和库中构建一个静态二进制文件,我想控制函数放入生成的二进制文件的顺序.

背景是,我有外部代码链接到这个二进制文件中的偏移量.现在,如果我更改源,所有偏移都会改变,因为gcc可能决定以不同的方式对函数进行排序,所以我想以固定的顺序将引用的函数放在开头,这样它们的偏移量保持不变......

我查看了ld的文档,但找不到任何关于函数顺序的信息.

我发现的唯一的东西是-fno-toplevel-reorder,这对我没有帮助.

linker gcc gnu

7
推荐指数
2
解决办法
7943
查看次数

标签 统计

gcc ×2

gnu ×1

linker ×1

optimization ×1