Mercurial > hg > CbC > CbC_gcc
diff gcc/sched-rgn.c @ 132:d34655255c78
update gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 10:21:07 +0900 |
parents | 84e7813d76e9 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/sched-rgn.c Thu Oct 25 08:08:40 2018 +0900 +++ b/gcc/sched-rgn.c Thu Oct 25 10:21:07 2018 +0900 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. - Copyright (C) 1992-2017 Free Software Foundation, Inc. + Copyright (C) 1992-2018 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) @@ -2497,6 +2497,11 @@ while (insn != head && DEBUG_INSN_P (insn)); } + /* Selective scheduling handles control dependencies by itself, and + CANT_MOVE flags ensure that other insns will be kept in place. */ + if (sel_sched_p ()) + return; + /* Make sure these insns are scheduled last in their block. */ insn = last; if (insn != 0) @@ -2725,9 +2730,7 @@ sched_analyze (&tmp_deps, head, tail); - /* Selective scheduling handles control dependencies by itself. */ - if (!sel_sched_p ()) - add_branch_dependences (head, tail); + add_branch_dependences (head, tail); if (current_nr_blocks > 1) propagate_deps (bb, &tmp_deps); @@ -3258,10 +3261,10 @@ free_dominance_info (CDI_DOMINATORS); } - gcc_assert (0 < nr_regions && nr_regions <= n_basic_blocks_for_fn (cfun)); - - RGN_BLOCKS (nr_regions) = (RGN_BLOCKS (nr_regions - 1) + - RGN_NR_BLOCKS (nr_regions - 1)); + gcc_assert (nr_regions > 0 && nr_regions <= n_basic_blocks_for_fn (cfun)); + + RGN_BLOCKS (nr_regions) = (RGN_BLOCKS (nr_regions - 1) + + RGN_NR_BLOCKS (nr_regions - 1)); nr_regions_initial = nr_regions; }