Recently we found an ICE while compiling a program with auto-fdo (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65972). The ICE was caused because SSA is not in a valid state when the early inliner is run. The fix was to update_ssa before running the early inliner (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65972#c4). However, it remains to be found out which pass caused the SSA to be in that state, maybe fixing the problem there would be more appropriate.
-Aditya ---------------------------------------- > Date: Sat, 9 May 2015 16:33:02 +0200 > From: hubi...@ucw.cz > To: hiradi...@msn.com > CC: de...@google.com; i.palac...@samsung.com; davi...@google.com; > hubi...@ucw.cz; gcc@gcc.gnu.org; v.bari...@samsung.com; dnovi...@google.com; > seb...@gmail.com > Subject: Re: AutoFDO profile toolchain is open-sourced > >>> Yes, it will. But it's not well tuned at all. I will start tuning it >>> if I have free cycles. It would be great if opensource community can >>> also contribute to this tuning effort. >> >> If you could outline portions of code which needs tuning, rewriting, that >> will help get started in this effort. > > Optimization passes in GCC are generally designed to work with any kind of > edge profile they get. > There are only few cases where they do care about what profile is around. > > At the moment we consider two types of profiles - static (guessed) and FDO. > For > static one we shut down use of profile info for some heuristics - for example > we do not expect loop trip counts to be reliable in the profiles because they > are not. You can look for code checking profile_status_for_fn. > > Auto-FDO does not have special value for profile_status_for_fn and it goes > with > same code paths for FDO. Dehao has some patches for Auto-FDO tuning but my > impression is that he got mostly got around by just makng optimizer bit more > robust for nonsential profiles that is always good, since even FDO profiles > can > get wrong. BTW, Dehao, do you think you can submit these changes for this > stage1? > > I suppose in this case we have yet another kind of profile that is less > reliable than > FDO and we need to start by simply benchmarking and looking for cases where > this profile > gets worse and handle them one by one :) > > Honza