This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [05/32] Pass an ABI identifier to hard_regno_call_part_clobbered


On 9/11/19 1:05 PM, Richard Sandiford wrote:
> This patch replaces the rtx_insn argument to
> targetm.hard_regno_call_part_clobbered with an ABI identifier, since
> call insns are now just one possible way of getting an ABI handle.
> This in turn allows predefined_function_abi::initialize to do the
> right thing for non-default ABIs.
> 
> The horrible ?: in need_for_call_save_p goes away in a later patch,
> with the series as a whole removing most direct calls to the hook in
> favour of function_abi operations.
> 
> 
> 2019-09-11  Richard Sandiford  <richard.sandiford@arm.com>
> 
> gcc/
> 	* target.def (hard_regno_call_part_clobbered): Take an ABI
> 	identifier instead of an rtx_insn.
> 	* doc/tm.texi: Regenerate.
> 	* hooks.h (hook_bool_insn_uint_mode_false): Delete.
> 	(hook_bool_uint_uint_mode_false): New function.
> 	* hooks.c (hook_bool_insn_uint_mode_false): Delete.
> 	(hook_bool_uint_uint_mode_false): New function.
> 	* config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
> 	Take an ABI identifier instead of an rtx_insn.
> 	* config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
> 	* config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
> 	* config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
> 	* config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
> 	* config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
> 	Likewise.
> 	* config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
> 	* cselib.c: Include function-abi.h.
> 	(cselib_process_insn): Update call to
> 	targetm.hard_regno_call_part_clobbered, using call_insn_abi
> 	to get the appropriate ABI identifier.
> 	* function-abi.cc (predefined_function_abi::initialize): Update call
> 	to targetm.hard_regno_call_part_clobbered.
> 	* ira-conflicts.c (ira_build_conflicts): Likewise.
> 	* ira-costs.c (ira_tune_allocno_costs): Likewise.
> 	* lra-constraints.c: Include function-abi.h.
> 	(need_for_call_save_p): Update call to
> 	targetm.hard_regno_call_part_clobbered, using call_insn_abi
> 	to get the appropriate ABI identifier.
> 	* lra-lives.c (check_pseudos_live_through_calls): Likewise.
> 	* regcprop.c (copyprop_hardreg_forward_1): Update call
> 	to targetm.hard_regno_call_part_clobbered.
> 	* reginfo.c (choose_hard_reg_mode): Likewise.
> 	* regrename.c (check_new_reg_p): Likewise.
> 	* reload.c (find_equiv_reg): Likewise.
> 	* reload1.c (emit_reload_insns): Likewise.
> 	* sched-deps.c: Include function-abi.h.
> 	(deps_analyze_insn): Update call to
> 	targetm.hard_regno_call_part_clobbered, using call_insn_abi
> 	to get the appropriate ABI identifier.
> 	* sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
> 	call to targetm.hard_regno_call_part_clobbered.
> 	* targhooks.c (default_dwarf_frame_reg_mode): Likewise.
> 
OK
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]