This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: wrong assertion in caller-save.c
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: Eric Botcazou <ebotcazou at adacore dot com>, BELBACHIR Selim <selim dot belbachir at fr dot thalesgroup dot com>, gcc at gcc dot gnu dot org
- Date: Sat, 11 Jan 2014 10:04:27 +0000
- Subject: Re: wrong assertion in caller-save.c
- Authentication-results: sourceware.org; auth=none
- References: <12235_1389377088_52D03640_12235_1644_1_9C88BF562A27AA41B242B2780441926E210D2857DA at THSONEA01CMS05P dot one dot grp> <6380325 dot qcWgXJckTX at polaris> <52D06A45 dot 90504 at redhat dot com>
Jeff Law <law@redhat.com> writes:
> On 01/10/14 14:44, Eric Botcazou wrote:
>>> In my backend movdi pattern has unfortunately code '0' (depends on pattern
>>> declaration order). When gcc tried to determine if my DI regs can be saved
>>> and restore as 'caller saves' (in caller-save.c::init_caller_save()) it
>>> failed on this wrong assertion.
>>
>> I'd arrange for avoiding code 0 instead because this disables the cache.
> Agreed, but the assert in caller-save is still wrong and ought to be fixed.
FWIW, it was fixed in 4.8 and later by making CODE_FOR_nothing be 0
and starting the real instructions at 1.
Thanks,
Richard