What does the GCC function suffix “isra” mean?

后端 未结 1 991
春和景丽
春和景丽 2020-12-10 03:30

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 on

相关标签:
1条回答
  • 2020-12-10 04:16

    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.

    0 讨论(0)
提交回复
热议问题