https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91050
--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Alan Modra from comment #3) > We don't always emit .machine because that is a waste of time if the > .machine cpu matches the original cpu passed on the command line to gas. > .machine reloads the gas opcode table, which may take a significant time. Shouldn't we check whether the new .machine <cpu> is different than the currently active cpu value before reloading the opcode table? I don't think it would be too hard to do and would solve stupid user tricks like: .machine power8 .machine power8 .machine power8 ... I'll have a look at that after I fix gcc sending the wrong -m<cpu> option to gas. Which is independent question of whether gcc should always emit .machine directives.