binutils-gdb/ld/emultempl
Alan Modra 3e04d7655b Inline PLT call optimization
This patch adds the analysis part of PLT call optimization, enabling
the code added with the previous patch that actually performs the
optimization.

Gold support is not available yet.

bfd/
	* elf64-ppc.c (struct _ppc64_elf_section_data): Add has_pltcall field.
	(struct ppc_link_hash_table): Add can_convert_all_inline_plt.
	(ppc64_elf_check_relocs): Set has_pltcall.
	(ppc64_elf_adjust_dynamic_symbol): Discard some PLT entries.
	(ppc64_elf_inline_plt): New function.
	(ppc64_elf_size_dynamic_sections): Discard some PLT entries for locals.
	* elf64-ppc.h (ppc64_elf_inline_plt): Declare.
	* elf32-ppc.c (has_pltcall): Define.
	(struct ppc_elf_link_hash_table): Add can_convert_all_inline_plt.
	(ppc_elf_check_relocs): Set has_pltcall.
	(ppc_elf_inline_plt): New function.
	(ppc_elf_adjust_dynamic_symbol): Discard some PLT entries.
	(ppc_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.h (ppc_elf_inline_plt): Declare.
ld/
	* emultempl/ppc64elf.em (no_inline_plt): New var.
	(ppc_before_allocation): Call ppc64_elf_inline_plt.
	(enum ppc64_opt): Add OPTION_NO_INLINE_OPT.
	(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS,
	PARSE_AND_LIST_ARGS_CASES): Handle --no-inline-optimize.
	* emultemps/ppc32elf.em (no_inline_opt): New var.
	(prelim_size_sections): New function, extracted from..
	(ppc_before_allocation): ..here.  Call ppc_elf_inline_plt.
	(enum ppc32_opt): Add OPTION_NO_INLINE_OPT.
	(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS,
	PARSE_AND_LIST_ARGS_CASES): Handle --no-inline-optimize.
2018-04-09 17:40:54 +09:30
..
README Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
aarch64elf.em Ensure 8-byte alignment for AArch64 stubs. 2018-03-02 10:49:20 +00:00
aix.em ld error/warning messages 2018-02-26 10:51:12 +10:30
alphaelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
arclinux.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
armcoff.em ld error/warning messages 2018-02-26 10:51:12 +10:30
armelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
astring.sed
avrelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
beos.em ld error/warning messages 2018-02-26 10:51:12 +10:30
bfin.em ld error/warning messages 2018-02-26 10:51:12 +10:30
cr16elf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
crxelf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
elf-generic.em ld error/warning messages 2018-02-26 10:51:12 +10:30
elf32.em ld: Add --enable-separate-code 2018-02-27 11:34:29 -08:00
epiphanyelf_4x4.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
genelf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
generic.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gld960.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gld960c.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
hppaelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
ia64elf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
irix.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
linux.em ld error/warning messages 2018-02-26 10:51:12 +10:30
lnk960.em ld error/warning messages 2018-02-26 10:51:12 +10:30
m68hc1xelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
m68kcoff.em ld error/warning messages 2018-02-26 10:51:12 +10:30
m68kelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
metagelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
mipself.em ld error/warning messages 2018-02-26 10:51:12 +10:30
mmix-elfnmmo.em ld error/warning messages 2018-02-26 10:51:12 +10:30
mmixelf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mmo.em ld error/warning messages 2018-02-26 10:51:12 +10:30
msp430.em ld error/warning messages 2018-02-26 10:51:12 +10:30
nds32elf.em nds32: Remove the unsupported target feature. 2018-03-15 14:50:51 +08:00
needrelax.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
netbsd.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nios2elf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
ostring.sed
pe.em Speed up direct linking with DLLs on Windows (1/2). 2018-04-04 12:07:50 +02:00
pep.em Speed up direct linking with DLLs on Windows (1/2). 2018-04-04 12:07:50 +02:00
ppc32elf.em Inline PLT call optimization 2018-04-09 17:40:54 +09:30
ppc64elf.em Inline PLT call optimization 2018-04-09 17:40:54 +09:30
pruelf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
riscvelf.em RISC-V: Don't enable relaxation in relocatable link 2018-03-15 09:54:51 +01:00
rxelf.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
s390.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
scoreelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
sh64elf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
solaris2.em solaris2.em: Fold after_allocation into before_allocation 2018-01-18 16:22:13 -08:00
spu_icache.S bfd/ 2009-03-17 12:46:19 +00:00
spu_icache.o_c Regenerate spu overlay and icache manager files 2014-11-04 22:36:13 +10:30
spu_ovl.S Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
spu_ovl.o_c Regenerate spu_ovl.o_c 2016-10-15 12:53:57 +10:30
spuelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
sunos.em ld error/warning messages 2018-02-26 10:51:12 +10:30
tic6xdsbt.em ld error/warning messages 2018-02-26 10:51:12 +10:30
ticoff.em ld error/warning messages 2018-02-26 10:51:12 +10:30
v850elf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
vanilla.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
vms.em ld error/warning messages 2018-02-26 10:51:12 +10:30
vxworks.em ld error/warning messages 2018-02-26 10:51:12 +10:30
xtensaelf.em ld error/warning messages 2018-02-26 10:51:12 +10:30
z80.em Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30

README

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The files in this directory are sourced by genscripts.sh, after
setting some variables to substitute in, to produce
C source files that contain jump tables for each emulation.

Copyright (C) 2012-2018 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.