[PATCH] Fix PR 60268

Andrey Belevantsev abel@ispras.ru
Tue Feb 25 09:36:00 GMT 2014


On 25.02.2014 13:14, Andreas Schwab wrote:
> Andrey Belevantsev <abel@ispras.ru> writes:
>
>> Fixed by placing the initialization properly at the end of sched_rgn_init
>> and also moving the check for sched_pressure != NONE outside of the if
>> statement in schedule_region as discussed in the PR trail with Jakub.
>>
>> Bootstrapped and tested on x86-64, ok?
>
> This breaks m68k:
>
> $ gcc/xgcc -Bgcc/ -fno-diagnostics-show-caret -fdiagnostics-color=never -O0 -flive-range-shrinkage -c -o pr60268.o ../gcc/testsuite/gcc.c-torture/compile/pr60268.c
> ../gcc/testsuite/gcc.c-torture/compile/pr60268.c: In function ‘f’:
> ../gcc/testsuite/gcc.c-torture/compile/pr60268.c:6:1: internal compiler error: in m68k_sched_issue_rate, at config/m68k/m68k.c:5978

The patch itself has nothing to do with the ICE, probably it means that 
-flive-range-shrinkage was never tried without tuning on m68k, because in 
m68k.c there is

630       /* Setup scheduling options.  */
631       if (TUNE_CFV1)
632         m68k_sched_cpu = CPU_CFV1;
633       else if (TUNE_CFV2)
634         m68k_sched_cpu = CPU_CFV2;
635       else if (TUNE_CFV3)
636         m68k_sched_cpu = CPU_CFV3;
637       else if (TUNE_CFV4)
638         m68k_sched_cpu = CPU_CFV4;
639       else
640         {
641           m68k_sched_cpu = CPU_UNKNOWN;
642           flag_schedule_insns = 0;
643           flag_schedule_insns_after_reload = 0;
644           flag_modulo_sched = 0;
645         }

And on line 641 m68k_sched_cpu set to CPU_UNKNOWN is causing the ICE.

I guess you need to turn the live range shrinkage off in that piece of 
code, the below patch fixes the ICE for me:

diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index f20d071..ea1bcd4 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -642,6 +642,7 @@ m68k_option_override (void)
        flag_schedule_insns = 0;
        flag_schedule_insns_after_reload = 0;
        flag_modulo_sched = 0;
+      flag_live_range_shrinkage = 0;
      }

    if (m68k_sched_cpu != CPU_UNKNOWN)


Yours,
Andrey

> 0xbabc8b m68k_sched_issue_rate
>          ../../gcc/config/m68k/m68k.c:5978
> 0xc3d9dc sched_init()
>          ../../gcc/haifa-sched.c:6657
> 0xc3eecf haifa_sched_init()
>          ../../gcc/haifa-sched.c:6719
> 0x8e807c schedule_insns
>          ../../gcc/sched-rgn.c:3407
> 0x8e87cb schedule_insns
>          ../../gcc/sched-rgn.c:3401
> 0x8e87cb rest_of_handle_live_range_shrinkage
>          ../../gcc/sched-rgn.c:3614
> 0x8e87cb execute
>          ../../gcc/sched-rgn.c:3704
>
> Andreas.
>



More information about the Gcc-patches mailing list