https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110724
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW CC| |hubicka at gcc dot gnu.org --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- We perform jump target alignment to optimize frontend (instruction decoding). The reporter is correct that if the jump target only contains an unconditional control transfer elsewhere such alignment is moot unless this jump itself crosses an instruction fetch boundary. a0: 89 50 fc mov %edx,-0x4(%rax) a3: 8b 11 mov (%rcx),%edx a5: 48 83 c1 04 add $0x4,%rcx a9: 89 10 mov %edx,(%rax) ab: 48 83 c0 04 add $0x4,%rax af: eb 94 jmp 45 <duff+0x45> b1: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) b8: c3 ret b9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) c0: 48 89 cf mov %rcx,%rdi so that doesn't seem to be the case here (in fact since 'ret' is a single byte it never crosses a fetch boundary but other uncond jumps might).