https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115589
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Some developers use Local Register Variables in an attempt to improve gcc’s allocation of registers, especially in large functions. In this case the register name is essentially a hint to the register allocator. While in some instances this can generate better code, improvements are subject to the whims of the allocator/optimizers. Since there are no guarantees that your improvements won’t be lost, this usage of Local Register Variables is discouraged.