From: Alexander Monakov Date: Wed, 25 Mar 2009 10:04:36 +0000 (+0300) Subject: ia64.c (ia64_set_sched_flags): Zero spec_info->mask when neither of haifa/selective... X-Git-Tag: releases/gcc-4.4.0~181 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cd510f15b8434447b7782140a52c0e5392cd3e13;p=thirdparty%2Fgcc.git ia64.c (ia64_set_sched_flags): Zero spec_info->mask when neither of haifa/selective schedulers are working. 2009-03-25 Andrey Belevantsev Alexander Monakov * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when neither of haifa/selective schedulers are working. * gcc.target/ia64/20090324-1.c: New test. From-SVN: r145055 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c695f47ca7e7..59226336d687 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 420a8e463270..da96fce6d4fb 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 11b2ae360020..afe6b7eb81d3 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 000000000000..d9aff6a18b43 --- /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 (); +}