Commit 946d6c2b authored by abel's avatar abel
Browse files

PR rtl-optimization/45352

        * sel-sched.c: Update copyright years.
        (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
        in the advancing loop when we have issued issue_rate insns.

	* gcc.dg/pr45352-3.c: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168742 138bc75d-0d04-0410-961f-82ee72b054a4
parent c6d146ce
2011-01-13 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/45352
* sel-sched.c: Update copyright years.
(reset_sched_cycles_in_current_ebb): Also recheck the DFA state
in the advancing loop when we have issued issue_rate insns.
2011-01-12 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
......
/* Instruction scheduling pass. Selective scheduler and pipeliner.
Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -6988,7 +6989,7 @@ reset_sched_cycles_in_current_ebb (void)
{
int cost, haifa_cost;
int sort_p;
bool asm_p, real_insn, after_stall;
bool asm_p, real_insn, after_stall, all_issued;
int clock;
if (!INSN_P (insn))
......@@ -7024,8 +7025,8 @@ reset_sched_cycles_in_current_ebb (void)
haifa_cost = cost;
after_stall = 1;
}
if (haifa_cost == 0
&& issued_insns == issue_rate)
all_issued = issued_insns == issue_rate;
if (haifa_cost == 0 && all_issued)
haifa_cost = 1;
if (haifa_cost > 0)
{
......@@ -7053,11 +7054,12 @@ reset_sched_cycles_in_current_ebb (void)
break;
/* When the data dependency stall is longer than the DFA stall,
it could be that after the longer stall the insn will again
and when we have issued exactly issue_rate insns and stalled,
it could be that after this longer stall the insn will again
become unavailable to the DFA restrictions. Looks strange
but happens e.g. on x86-64. So recheck DFA on the last
iteration. */
if (after_stall
if ((after_stall || all_issued)
&& real_insn
&& haifa_cost == 0)
haifa_cost = estimate_insn_cost (insn, curr_state);
......
2011-01-13 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/45352
* gcc.dg/pr45352-3.c: New.
2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
* g++.dg/cpp0x/range-for4.C: Delete useless include and duplicated
......
/* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */
/* { dg-options "-O -fprofile-generate -fgcse -fno-gcse-lm -fgcse-sm -fno-ivopts -fno-tree-loop-im -ftree-pre -funroll-loops -fno-web -fschedule-insns2 -fselective-scheduling2 -fsel-sched-pipelining" } */
extern volatile float f[];
void foo (void)
{
int i;
for (i = 0; i < 100; i++)
f[i] = 0;
for (i = 0; i < 100; i++)
f[i] = 0;
for (i = 0; i < 100; i++)
if (f[i])
__builtin_abort ();
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment