While profiling a program compiled with gcc, I noticed functions like foo.isra.3
. What does isra
indicate? I notice that one of the functions is only called in a few places, and one of the arguments is always specified as a literal value. Maybe it means it's a variant of the function optimised for certain arguments?
Asked
Active
Viewed 7,967 times
20

z0r
- 8,185
- 4
- 64
- 83
1 Answers
29
According to a comment on this bug report (and similar comments I could find):
ISRA is the name of the variable that gets created by IPA SRA ...
IPA SRA is an optimization option:
-fipa-sra
Perform interprocedural scalar replacement of aggregates, removal of unused parameters and replacement of parameters passed by reference by parameters passed by value.
Enabled at levels -O2, -O3 and -Os.
So most likely, it's a version of a function with those optimizations.
In the case you mentioned, it's possible that it's replacing a pass-by-reference with a pass-by-value since it knows there's no point to passing a literal by reference.

Community
- 1
- 1

Brendan Long
- 53,280
- 21
- 146
- 188