假设我有一个由三个函数A,B和C组成的编译单元.A从编译单元的外部函数(例如它是一个入口点或回调函数)调用一次; B被A多次调用(例如它在一个紧密循环中被调用);每调用一次B就调用一次C(例如,它是一个库函数)。通过A(通过B和C)的整个路径对性能至关重要,尽管A本身的性能并不重要(因为大部分时间都花在B和C上)。GCC热属性的语义
用__attribute__ ((hot))
注释来影响这条路径的更积极的优化的最小函数集是什么?假设我们不能使用-fprofile-generate
。
等价地:__attribute__ ((hot))
意思是“优化这个函数体”,“优化对这个函数的调用”,“优化所有的后代调用这个函数使得”,或者它们的某些组合?
海湾合作委员会信息页面没有明确地解决这些问题。
使用'__attribute__((热))'可能会获得你一些东西,但是你可能会从首先制作B和C'静态内联'并使用'-O3'优化来获得更好的结果。 – twalberg 2013-02-22 17:03:01
我假设这些步骤已经完成。 – 2013-03-06 20:26:20