在分析用gcc编译的程序时,我注意到foo.isra.3
之类的函数。 isra
表示什么?我注意到其中一个函数只在几个地方调用,其中一个参数总是指定为文字值。也许这意味着它是针对某些参数优化的函数的变体?
答案 0 :(得分:19)
根据对this bug report的评论(以及我能找到的类似评论):
ISRA是由IPA SRA创建的变量的名称......
IPA SRA是optimization option:
<强> -fipa-SRA 强>
执行聚合的过程间标量替换,删除未使用的参数以及通过值传递的参数替换参考传递的参数。
在-O2,-O3和-Os等级启用。
所以很有可能,它是具有这些优化功能的版本。
在你提到的情况下,它有可能用pass-by-value替换pass-by-reference,因为它知道通过引用传递文字是没有意义的。