On Fri, 9 Feb 2024 at 10:55, Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > And also pessimizes all asm gotos (for gcc) including ones that don't > contain output as described in 43c249ea0b1e. The version checks would > at least not pessimize those. Yeah, no, we should limit that workaround only to the asm goto with outputs case. We should also probably get rid of the existing "asm_volatile_goto()" macro name entirely. That name was always pretty horrific, in that it didn't even mark the asm as volatile even in the case where it did anything. So the name of that macro made little sense, and the new workaround should be only for asm goto with outputs. So I'd suggest jmaking a new macro with that name: #define asm_goto_output(x...) and on gcc use that old workaround, and on clang just make it be a plain "asm goto". Hmm? Linus