This is a patch 3 to support the Aarch64 SIMD ABI [1] in GCC. It defines a new target hook targetm.remove_extra_call_preserved_regs that takes a rtx_insn and will remove registers from the register set passed in if we know that this call preserves those registers. Aarch64 SIMD functions preserve some registers that normal functions do not.  The default version of this function will do nothing. Steve Ellcey sellcey@cavium.com 2018-11-08  Steve Ellcey   * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. (aarch64_remove_extra_call_preserved_regs): New function. (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. * final.c (get_call_reg_set_usage): Call new hook. * target.def (remove_extra_call_preserved_regs): New hook. * targhooks.c (default_remove_extra_call_preserved_regs): New function.