------- Comment #11 from pinskia at gcc dot gnu dot org 2008-09-21 00:45 ------- Here is another testcase which shows the issue: int f(int b);
float g(int a) { while (f(a + 1)); while (f(a)); } --- CUT --- This increases the need for another volatile register and in fact increases register pressure even more. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[4.3/4.4 Regression] address|[4.3/4.4 Regression] |addition moved out of the |addition moved out of the |loop |loop when used with an | |argument http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36758