Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在分析使用 gcc 编译的程序时,我注意到像foo.isra.3. 说明什么isra?我注意到其中一个函数仅在少数地方被调用,并且其中一个参数始终指定为文字值。也许这意味着它是针对某些参数优化的函数的变体?
foo.isra.3
isra
根据对此错误报告的评论(以及我能找到的类似评论):
ISRA 是由 IPA SRA 创建的变量的名称...
IPA SRA 是一个优化选项:
-fipa-sra 执行聚合的过程间标量替换,删除未使用的参数以及通过值传递的参数替换通过引用传递的参数。 在 -O2、-O3 和 -Os 级别启用。
-fipa-sra
执行聚合的过程间标量替换,删除未使用的参数以及通过值传递的参数替换通过引用传递的参数。
在 -O2、-O3 和 -Os 级别启用。
所以很可能,它是具有这些优化的函数的一个版本。
在您提到的情况下,它可能会用按值传递替换按引用传递,因为它知道通过引用传递文字是没有意义的。