A question regarding .profdata
files reusage between compiler versions.
As you said above, one of the biggest influences on the profile re-usage has multiple inlining decisions. Let’s imagine a situation when we collected profdata
PGO profile for our application with Clang 15 and saved it somewhere. Later Clang 16 is released and we want to use our saved PGO profile to optimize our program with Clang 16 (so we are skipping collected PGO profile with Clang 16).
Is there a chance that the PGO profile will not be helpful for optimization purposes in this case? A new optimization pass is added in Clang 16, it influences somehow the inlining decisions. Inlining changed, and our profile from Clang 15 is not useful anymore (however is compatible with Clang 16, as you said above). Is this scenario real? If yes, what are the ways to mitigate it except regenerating PGO profiles with each compiler update?