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).