Commit 11290308 by Andrey Belevantsev Committed by Andrey Belevantsev

re PR rtl-optimization/60901 (ICE: SIGSEGV in add_to_deps_list with…

re PR rtl-optimization/60901 (ICE: SIGSEGV in add_to_deps_list with -fsel-sched-pipelining-outer-loops)

	PR rtl-optimization/60901
	* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
	bb predecessor belongs to the same scheduling region.  Adjust comment.

	* gcc.target/i386/pr60901.c: New test.

From-SVN: r210414
parent 2675305b
2014-05-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/60901
* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
bb predecessor belongs to the same scheduling region. Adjust comment.
2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
* doc/sourcebuild.texi: (dfp_hw): Document.
......
......@@ -26254,13 +26254,17 @@ ix86_dependencies_evaluation_hook (rtx head, rtx tail)
{
edge e;
edge_iterator ei;
/* Assume that region is SCC, i.e. all immediate predecessors
of non-head block are in the same region. */
/* Regions are SCCs with the exception of selective
scheduling with pipelining of outer blocks enabled.
So also check that immediate predecessors of a non-head
block are in the same region. */
FOR_EACH_EDGE (e, ei, bb->preds)
{
/* Avoid creating of loop-carried dependencies through
using topological odering in region. */
if (BLOCK_TO_BB (bb->index) > BLOCK_TO_BB (e->src->index))
using topological ordering in the region. */
if (rgn == CONTAINING_RGN (e->src->index)
&& BLOCK_TO_BB (bb->index) > BLOCK_TO_BB (e->src->index))
add_dependee_for_func_arg (first_arg, e->src);
}
}
2014-05-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/60901
* gcc.target/i386/pr60901.c: New test.
2014-05-14 Yury Gribov <y.gribov@samsung.com>
PR sanitizer/61100
......
/* { dg-options "-O -fselective-scheduling -fschedule-insns -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fno-tree-dominator-opts" } */
extern int n;
extern void bar (void);
extern int baz (int);
void
foo (void)
{
int i, j;
for (j = 0; j < n; j++)
{
for (i = 1; i < j; i++)
bar ();
baz (0);
}
}
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