https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68937
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to H.J. Lu from comment #1) > There is > > static bool > ix86_function_ok_for_sibcall (tree decl, tree exp) > { > tree type, decl_or_type; > rtx a, b; > > /* If we are generating position-independent code, we cannot sibcall > optimize direct calls to global functions, as the PLT requires > %ebx be live. (Darwin does not have a PLT.) */ > if (!TARGET_MACHO > && !TARGET_64BIT > && flag_pic > && flag_plt > && decl && !targetm.binds_local_p (decl)) > return false; > > Why dos RA pick callee-saved register as GOT base in jmp? We should remove flag_plt here. I will submit a patch.