https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115825
--- Comment #26 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #25) > No, darn does have a side effect: it returns a random number in the > destination reg (_deliver_ _a_ _r_andom _n_umber). It does not touch memory > at all. > > There are no call insns at all either, of course, so how is that code you > show > relevant at all? This is a GIMPLE pass which has no idea what the backend will expand __builtin_darn() to. And yes, on the GIMPLE side builtin calls are calls. And builtins like __builtin_strftime () do expand to calls. As said already - if the rev in question caused tons of testsuite fails please open a _separate_ bugreport listing those so that we can properly track such a regression. _This_ bug is about the excessive unrolling and thus code size regression involving stmts with side-effects (on AVR).