On Sep 06 2018, Jeff Law <l...@redhat.com> wrote:

> On 09/03/2018 08:32 AM, John David Anglin wrote:
>> The documentation for TARGET_SCHED_ADJUST_PRIORITY indicates that the
>> hook can
>> reduce the priority of INSN to execute it later.  The hppa hook only
>> reduces the priority
>> and it has been this way for years.  However, the assert in
>> sel_target_adjust_priority()
>> prevents reduction of the priority.
>> 
>> The attached change revises the assert to allow the priority to be
>> reduced to zero.
>> 
>> This fixes PR rtl-optimization/85458.
>> 
>> Tested on hppa-unknown-linux-gnu, hppa2.0w-hp-hpux11.11 and
>> hppa64-hp-hpux11.11.
>> 
>> I must admit that this happens so infrequently that I have to wonder if
>> the hook provides
>> any benefit on hppa.  It was supposed to keep addil instructions close
>> to the following instruction
>> to reduce pressure on register %r1.
>> 
>> Okay?
>> 
>> Dave
>> 
>> -- 
>> John David Anglin  dave.ang...@bell.net
>> 
>> 
>> sel-sched.c.d
>> 
>> 
>> 2018-09-03  John David Anglin  <dang...@gcc.gnu.org>
>> 
>>      PR rtl-optimization/85458
>>      * sel-sched.c (sel_target_adjust_priority): Allow backend adjust
>>      priority hook to reduce the priority of EXPR.
> OK.

That breaks ia64.

during RTL pass: mach
/usr/local/gcc/test/gcc/testsuite/gcc.c-torture/compile/20010102-1.c: In 
function '_obstack_newchunk':
/usr/local/gcc/test/gcc/testsuite/gcc.c-torture/compile/20010102-1.c:101:1: 
internal compiler error: in sel_target_adjust_priority, at sel-sched.c:3333
0x40000000010bb68f sel_target_adjust_priority
        ../../gcc/sel-sched.c:3333
0x40000000010bb68f fill_vec_av_set
        ../../gcc/sel-sched.c:3727
0x40000000010bd45f fill_ready_list
        ../../gcc/sel-sched.c:4028
0x40000000010bd45f find_best_expr
        ../../gcc/sel-sched.c:4388
0x40000000010bd45f fill_insns
        ../../gcc/sel-sched.c:5549
0x40000000010c29cf schedule_on_fences
        ../../gcc/sel-sched.c:7366
0x40000000010c29cf sel_sched_region_2
        ../../gcc/sel-sched.c:7504
0x40000000010c510f sel_sched_region_1
        ../../gcc/sel-sched.c:7546
0x40000000010c700f sel_sched_region(int)
        ../../gcc/sel-sched.c:7647
0x40000000010c9def run_selective_scheduling()
        ../../gcc/sel-sched.c:7733
0x40000000019e473f ia64_reorg
        ../../gcc/config/ia64/ia64.c:9857
0x40000000010314cf execute
        ../../gcc/reorg.c:3984

Andreas.

-- 
Andreas Schwab, SUSE Labs, sch...@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Reply via email to