[Bug middle-end/56077] [4.6/4.7 Regression] volatile ignored when function inlined
abel at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 11 06:17:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56077
--- Comment #16 from Andrey Belevantsev <abel at gcc dot gnu.org> 2013-04-11 06:17:41 UTC ---
The patch adds more pending list flushes and thus more dependencies. So by
itself it is conservative and should not result in correctness issues that
arise when the scheduler gets more freedom.
However, the accidental change that the patch reverted was made back in 2008.
Since then, obviously many changes were made to the scheduler, and some of
those could assume that pending lists are flushed on jumps only. One such
iasue has surfaced immediately on 4.6/4.7, where the patch was reverted, but on
4.8 and trunk that was fixed by Maxim's patch. PR 56912 is another issue
judging from the backtrace. I will take a look there as soon as the testcase
shows up.
Overall, I agree with Jakub -- the patch fixes wrong code (though not very
important one as the bug was reported in 4.5 years after the change was made),
it is conservative, but has some fallout, so for 4.6/4.7 let's wait more until
all issues come up, and for 4.8 let's just fix the issues.
More information about the Gcc-bugs
mailing list