On 9/25/19 9:52 AM, Richard Sandiford wrote: > Segher Boessenkool <seg...@kernel.crashing.org> writes: >> Hi Richard, >> >> Sorry this too me so long to get back to. >> >> On Thu, Sep 12, 2019 at 08:51:59AM +0100, Richard Sandiford wrote: >>> Segher Boessenkool <seg...@kernel.crashing.org> writes: >>>> On Wed, Sep 11, 2019 at 08:08:38PM +0100, Richard Sandiford wrote: >>>>> hard_reg_set_iterator hrsi; >>>>> - EXECUTE_IF_SET_IN_HARD_REG_SET (regs_invalidated_by_call, 0, i, >>>>> hrsi) >>>>> + EXECUTE_IF_SET_IN_HARD_REG_SET (abi.full_and_partial_reg_clobbers >>>>> (), >>>>> + 0, i, hrsi) >>>> >>>> So "abi" in that means calls? >>> >>> "abi" is the interface of the callee function, taking things like >>> function attributes and -fipa-ra into account. >>> >>> The register sets are describing what the callee does rather than >>> what calls to it do. E.g. on targets that allow linker stubs to be >>> inserted between calls, the scratch registers reserved for linker stubs >>> are still call-clobbered, even if the target of the call doesn't use >>> them. (Those call clobbers are represented separately, at least when >>> TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS is true. When it's >>> false we don't use -fipa-ra information at all.) >>> >>>> It is not such a great name like that. Since its children are >>>> very_long_names, it doesn't need to be only three chars itself, >>>> either? >>> >>> OK, what name would you prefer? >> >> Maybe call_abi is a good name? It's difficult to capture the subtleties >> in a short enough name. As always :-) > > The formatting ended up being a bit weird with a longer name, > so how about the attached instead? > > Richard > > > 2019-09-25 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * combine.c: Include function-abi.h. > (record_dead_and_set_regs): Use insn_callee_abi to get the ABI > of the target of call insns. Invalidate partially-clobbered > registers as well as fully-clobbered ones. OK if Segher doesn't object.
jeff >