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


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


12190
2017-12-19 23:50


起源



答案:


根据评论 这个错误报告 (以及我能找到的类似评论):

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

IPA SRA是一个 优化选项

-fipa-SRA

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

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

所以很有可能,它是具有这些优化的函数的一个版本。

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


16
2017-12-20 00:04