[01/05] Fix PR 64411

Andrey Belevantsev abel@ispras.ru
Tue Mar 15 15:43:00 GMT 2016


Hello,

On 14.03.2016 19:45, Bernd Schmidt wrote:
> On 03/14/2016 05:23 PM, Alexander Monakov wrote:
>> On Mon, 14 Mar 2016, Andrey Belevantsev wrote:
>>> In this case, we get an inconsistency between the sched-deps interface,
>>> saying
>>> we can't move an insn writing the si register through a vector insn, and
>>> the
>>> liveness analysis, saying we can.  The latter doesn't take into account
>>> implicit_reg_pending_clobbers set calculated in sched-deps before register
>>> allocation.  The solution is to reflect this set in our insn data
>>> (sets/uses/clobbers).
>>>
>>> Ok for trunk?
>>
>> One nit; the prototype of the new function:
>>
>> extern void get_implicit_reg_pending_clobbers (rtx_insn *, HARD_REG_SET *);
>>
>> has source operand on the left, destination on the right; it's probably
>> nicer
>> to swap them around.
>>
>> OK as far as selective scheduler changes go, but this also needs a general
>> scheduler maintainer ack for the sched-deps.c change.  Vladimir, can you
>> have
>> a look?
>
> Needs better documentation of the new function's arguments (as per general
> requirements for such things), but otherwise that part is ok (either arg
> order). The sel-sched parts should also have proper function comments
> however, and here:
>
> +    {
> +      SET_REGNO_REG_SET (IDATA_REG_SETS (id), regno);
> +    }
>
> we don't use braces around single statements.

I've incorporated both yours and Alexander's comments and committed the 
patch as rev. 234216.

Andrey

>
>
> Bernd



More information about the Gcc-patches mailing list