【发布时间】:2012-12-07 10:34:33
【问题描述】:
在分析使用 gcc 编译的程序时,我注意到像 foo.isra.3 这样的函数。 isra 表示什么?我注意到其中一个函数只在少数地方被调用,并且其中一个参数总是被指定为文字值。也许这意味着它是针对某些参数优化的函数的变体?
【问题讨论】:
标签: gcc profiling name-mangling
在分析使用 gcc 编译的程序时,我注意到像 foo.isra.3 这样的函数。 isra 表示什么?我注意到其中一个函数只在少数地方被调用,并且其中一个参数总是被指定为文字值。也许这意味着它是针对某些参数优化的函数的变体?
【问题讨论】:
标签: gcc profiling name-mangling
根据this bug report 上的评论(以及我能找到的类似 cmets):
ISRA 是由 IPA SRA 创建的变量的名称 ...
IPA SRA 是 optimization option:
-fipa-sra
执行聚合的过程间标量替换,删除未使用的参数以及通过值传递的参数替换通过引用传递的参数。
在 -O2、-O3 和 -Os 级别启用。
所以很可能,它是具有这些优化的函数的一个版本。
在您提到的情况下,它可能正在用按值传递替换按引用传递,因为它知道通过引用传递文字是没有意义的。
【讨论】: