On Friday 27 November 2015 09:53:50 Rasmus Villemoes wrote: > > It seems that gcc happily compiles > > for (i = 0; i < 1000000000; ++i) ; > > into simply > > i = 1000000000; > > (which is then usually eliminated as a dead store). At least at -O2, and > when i is not declared volatile. So it would seem that the loops at > > arch/mips/pci/pci-rt2880.c:235 > arch/mips/pmcs-msp71xx/msp_setup.c:80 > arch/mips/sni/reset.c:35 > > actually don't do anything. (In the middle one, i is 'register', but > that doesn't change anything.) Is mips compiled with some special flags > that would make gcc actually emit code for the above? > I remember that gcc used to not optimize code that looked like a delay loop such as the above, and my tests show that this was still the case in gcc-4.0.3, but starting with gcc-4.1 it opimtized away that loop. Arnd