https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117312
--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> --- "memory" clobber is IMO about possibly changing any user var in memory behind the back of the compiler, not about changing whatever compiler internals stored somewhere on the stack in stack slots that don't have address taken and could escape to the inline asm. So, compiler doesn't need to assume the inline asm could have say changed the saved frame pointer or return address on the stack, or stuff temporarily pushed into the red zone, stack canary, pseudos pushed temporarily to stack during reload, ... Because there is no way the compiler can cope with that being changed, reloading is exactly what the compiler does if say inline asm clobbers a register in which something that needs to live across the inline asm is stored. So, if we don't want to support rsp clobbers or rsp as +r operand anymore as hacks that happened to disable red-zone, IMHO we should add a new clobber, say "redzone" which makes it explicit what we want to achieve.