https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43476
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Code has changed slightly but it still seems to apply today:
/* After switches have been processed, which perhaps alter
`fixed_regs' and `call_used_regs', convert them to HARD_REG_SETs. */
static void
init_reg_sets_1 (void)
{
unsigned int i, j;
unsigned int /* machine_mode */ m;
restore_register_info ();
#ifdef REG_ALLOC_ORDER
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
inv_reg_alloc_order[reg_alloc_order[i]] = i;
#endif
/* Let the target tweak things if necessary. */
targetm.conditional_register_usage ();