GCC函数后缀“isra”是什么意思?

时间:2012-12-19 23:50:15

标签: gcc profiling name-mangling

在分析用gcc编译的程序时,我注意到foo.isra.3之类的函数。 isra表示什么?我注意到其中一个函数只在几个地方调用,其中一个参数总是指定为文字值。也许这意味着它是针对某些参数优化的函数的变体?

1 个答案:

答案 0 :(得分:19)

根据对this bug report的评论(以及我能找到的类似评论):

  

ISRA是由IPA SRA创建的变量的名称......

IPA SRA是optimization option

  

<强> -fipa-SRA

     

执行聚合的过程间标量替换,删除未使用的参数以及通过值传递的参数替换参考传递的参数。

     

在-O2,-O3和-Os等级启用。

所以很有可能,它是具有这些优化功能的版本。

在你提到的情况下,它有可能用pass-by-value替换pass-by-reference,因为它知道通过引用传递文字是没有意义的。