diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c695f47ca7e..59226336d68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-03-25 Andrey Belevantsev + + * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when + neither of haifa/selective schedulers are working. + 2009-03-25 Ralf Wildenhues * doc/invoke.texi (Debugging Options): Fix description of diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 420a8e46327..da96fce6d4f 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -7274,6 +7274,8 @@ ia64_set_sched_flags (spec_info_t spec_info) spec_info->flags |= COUNT_SPEC_IN_CRITICAL_PATH; } } + else + spec_info->mask = 0; } /* If INSN is an appropriate load return its mode. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 11b2ae36002..afe6b7eb81d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-03-25 Alexander Monakov + + * gcc.target/ia64/20090324-1.c: New test. + 2009-03-25 Jakub Jelinek PR c/27898 diff --git a/gcc/testsuite/gcc.target/ia64/20090324-1.c b/gcc/testsuite/gcc.target/ia64/20090324-1.c new file mode 100644 index 00000000000..d9aff6a18b4 --- /dev/null +++ b/gcc/testsuite/gcc.target/ia64/20090324-1.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fmodulo-sched" } */ + +static char *place_region_bounds_x, *place_region_bounds_y; +static void read_place () { + char msg[300]; + update_screen (msg); +} +static void alloc_and_load_placement_structs () { + int i, j; + for (j=0; + j<100; + j++) { + place_region_bounds_x[i] = place_region_bounds_x[i-1]; + place_region_bounds_y[i] = place_region_bounds_y[i-1]; + } +} +void place_and_route () { + read_place (); + alloc_and_load_placement_structs (); +}