[PATCH PR65161]

Yuri Rumyantsev ysrumyan@gmail.com
Wed Feb 25 09:41:00 GMT 2015


Hi All,

I prepared new patch which includes test-case.

I can't agree with patch proposed by Alexander since other functions
doing ready list reordering also use HID interface, so I put escape
check in ix86_sched_reorder.

Is it OK for trunk?

2015-02-25  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR target/65161
* config/i386/i386.c (ix86_sched_reorder): Skip instruction reordering
for selective scheduling.

gcc/testsuite/ChangeLog
* gcc.target/i386/pr65161.c: New test.


2015-02-25 2:54 GMT+03:00 Andrey Belevantsev <abel@ispras.ru>:
> On 24.02.2015 21:16, Alexander Monakov wrote:
>>
>>
>>
>> On Tue, 24 Feb 2015, Yuri Rumyantsev wrote:
>>
>>> Hi All!
>>>
>>> Here is a simple patch to not perform instruction reordering for
>>> selective scheduling since it uses interface of list scheduling
>>> defined in "sched-int.h".
>>
>>
>> As I see, the exact problem is that swap_top_of_ready_list accesses HID,
>> so
>> please use the more specialized patch below instead.
>
>
> You have missed a space before call parentheses in the patch, otherwise it
> looks fine.
>
> Andrey
>
>
>
>>
>> Thanks.
>> Alexander
>>
>> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
>> index 7f5796a..6eccd54 100644
>> --- a/gcc/config/i386/i386.c
>> +++ b/gcc/config/i386/i386.c
>> @@ -26615,6 +26615,12 @@ swap_top_of_ready_list (rtx_insn **ready, int
>> n_ready)
>>     dep_t dep;
>>     int clock1 = -1;
>>     int clock2 = -1;
>> +
>> +  /* The following heuristic inspects h_i_d, but it is not extended for
>> insns
>> +     created when doing selective scheduling.  */
>> +  if (sel_sched_p())
>> +    return false;
>> +
>>     #define INSN_TICK(INSN) (HID (INSN)->tick)
>>
>>     if (!TARGET_SILVERMONT && !TARGET_INTEL)
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.1
Type: application/octet-stream
Size: 944 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150225/0d0d7e43/attachment.obj>


More information about the Gcc-patches mailing list