19

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

4

1 回答 1

27

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

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

IPA SRA 是一个优化选项

-fipa-sra

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

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

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

在您提到的情况下,它可能会用按值传递替换按引用传递,因为它知道通过引用传递文字是没有意义的。

于 2012-12-20T00:04:13.910 回答