On Thu, Oct 8, 2015 at 9:54 AM, Nikolai Bozhenov <n.bozhe...@samsung.com> wrote: > > On 10/07/2015 08:07 PM, pins...@gmail.com wrote: >> >> Yes. But I am saying some one could do -fprofile-use -frename-registers >> and expect rename registers to stay on even if there is no profile. > > > That's true, we shouldn't disable any options that were explicitly requested > by > the user. > >> Why not figure out how much to improve that instead. Rename register is >> just doing renaming of register usage and not undoing any scheduling at all >> (well it might cause some moves to be removed). I think you really should >> dig into deeper why it is causing a performance issue. > > > Yep, the better way is to fix all the problems in all the passes. We're > working on it but it may take a while. Meanwhile, we want to use PGO and we > need a way to avoid degradations caused by it. We want to fallback to the > usual compilation process for a source file if we don't like how it is > compiled with PGO. And what we want to do is to simply remove the > corresponding gcda file and have the compiler ignore the -fprofile-use > option > for the translation unit. > > Anyway, I find current GCC's behavior to be confusing. Currently it silently > ignores missed profile data but triggers some opaque internal options which > affect further compilation. I think in case of a missed gcda file GCC should > either ignore -fprofile-use completely or issue a warning/error.
I agree that it is confusing. You have to watch out for explicit -fprofile-use -fXXX and not clear flags set explicitely though. Didn't look at the patch in detail. Richard. > Thanks, > Nikolai