Commit 70458d76 by Richard Biener Committed by Richard Biener

tree-ssa-pre.c (compute_antic_aux): Remove code that asserts that the value-set…

tree-ssa-pre.c (compute_antic_aux): Remove code that asserts that the value-set of ANTIC_IN doesn't grow.

2018-03-14  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
	that the value-set of ANTIC_IN doesn't grow.

	Revert
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
	member.
	(BB_VISITED_WITH_VISITED_SUCCS): New define.
	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.

From-SVN: r258520
parent 7b06ad56
2018-03-14 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
that the value-set of ANTIC_IN doesn't grow.
Revert
* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
member.
(BB_VISITED_WITH_VISITED_SUCCS): New define.
(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
2018-03-14 Julia Koval <julia.koval@intel.com> 2018-03-14 Julia Koval <julia.koval@intel.com>
* config.gcc (icelake-client, icelake-server): New. * config.gcc (icelake-client, icelake-server): New.
......
...@@ -484,10 +484,6 @@ typedef struct bb_bitmap_sets ...@@ -484,10 +484,6 @@ typedef struct bb_bitmap_sets
/* True if we have visited this block during ANTIC calculation. */ /* True if we have visited this block during ANTIC calculation. */
unsigned int visited : 1; unsigned int visited : 1;
/* True if we have visited this block after all successors have been
visited this way. */
unsigned int visited_with_visited_succs : 1;
/* True when the block contains a call that might not return. */ /* True when the block contains a call that might not return. */
unsigned int contains_may_not_return_call : 1; unsigned int contains_may_not_return_call : 1;
} *bb_value_sets_t; } *bb_value_sets_t;
...@@ -501,8 +497,6 @@ typedef struct bb_bitmap_sets ...@@ -501,8 +497,6 @@ typedef struct bb_bitmap_sets
#define NEW_SETS(BB) ((bb_value_sets_t) ((BB)->aux))->new_sets #define NEW_SETS(BB) ((bb_value_sets_t) ((BB)->aux))->new_sets
#define EXPR_DIES(BB) ((bb_value_sets_t) ((BB)->aux))->expr_dies #define EXPR_DIES(BB) ((bb_value_sets_t) ((BB)->aux))->expr_dies
#define BB_VISITED(BB) ((bb_value_sets_t) ((BB)->aux))->visited #define BB_VISITED(BB) ((bb_value_sets_t) ((BB)->aux))->visited
#define BB_VISITED_WITH_VISITED_SUCCS(BB) \
((bb_value_sets_t) ((BB)->aux))->visited_with_visited_succs
#define BB_MAY_NOTRETURN(BB) ((bb_value_sets_t) ((BB)->aux))->contains_may_not_return_call #define BB_MAY_NOTRETURN(BB) ((bb_value_sets_t) ((BB)->aux))->contains_may_not_return_call
#define BB_LIVE_VOP_ON_EXIT(BB) ((bb_value_sets_t) ((BB)->aux))->vop_on_exit #define BB_LIVE_VOP_ON_EXIT(BB) ((bb_value_sets_t) ((BB)->aux))->vop_on_exit
...@@ -2047,8 +2041,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) ...@@ -2047,8 +2041,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
{ {
e = single_succ_edge (block); e = single_succ_edge (block);
gcc_assert (BB_VISITED (e->dest)); gcc_assert (BB_VISITED (e->dest));
BB_VISITED_WITH_VISITED_SUCCS (block)
= BB_VISITED_WITH_VISITED_SUCCS (e->dest);
phi_translate_set (ANTIC_OUT, ANTIC_IN (e->dest), e); phi_translate_set (ANTIC_OUT, ANTIC_IN (e->dest), e);
} }
/* If we have multiple successors, we take the intersection of all of /* If we have multiple successors, we take the intersection of all of
...@@ -2059,7 +2051,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) ...@@ -2059,7 +2051,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
size_t i; size_t i;
edge first = NULL; edge first = NULL;
BB_VISITED_WITH_VISITED_SUCCS (block) = true;
auto_vec<edge> worklist (EDGE_COUNT (block->succs)); auto_vec<edge> worklist (EDGE_COUNT (block->succs));
FOR_EACH_EDGE (e, ei, block->succs) FOR_EACH_EDGE (e, ei, block->succs)
{ {
...@@ -2078,8 +2069,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) ...@@ -2078,8 +2069,6 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
fprintf (dump_file, "ANTIC_IN is MAX on %d->%d\n", fprintf (dump_file, "ANTIC_IN is MAX on %d->%d\n",
e->src->index, e->dest->index); e->src->index, e->dest->index);
} }
BB_VISITED_WITH_VISITED_SUCCS (block)
&= BB_VISITED_WITH_VISITED_SUCCS (e->dest);
} }
/* Of multiple successors we have to have visited one already /* Of multiple successors we have to have visited one already
...@@ -2184,19 +2173,7 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) ...@@ -2184,19 +2173,7 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
} }
if (!bitmap_set_equal (old, ANTIC_IN (block))) if (!bitmap_set_equal (old, ANTIC_IN (block)))
{ changed = true;
changed = true;
/* After the initial value set computation the value set may
only shrink during the iteration. */
if (was_visited && BB_VISITED_WITH_VISITED_SUCCS (block) && flag_checking)
{
bitmap_iterator bi;
unsigned int i;
EXECUTE_IF_AND_COMPL_IN_BITMAP (&ANTIC_IN (block)->values,
&old->values, 0, i, bi)
gcc_unreachable ();
}
}
maybe_dump_sets: maybe_dump_sets:
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
...@@ -2367,7 +2344,6 @@ compute_antic (void) ...@@ -2367,7 +2344,6 @@ compute_antic (void)
FOR_ALL_BB_FN (block, cfun) FOR_ALL_BB_FN (block, cfun)
{ {
BB_VISITED (block) = 0; BB_VISITED (block) = 0;
BB_VISITED_WITH_VISITED_SUCCS (block) = 0;
FOR_EACH_EDGE (e, ei, block->preds) FOR_EACH_EDGE (e, ei, block->preds)
if (e->flags & EDGE_ABNORMAL) if (e->flags & EDGE_ABNORMAL)
...@@ -2384,7 +2360,6 @@ compute_antic (void) ...@@ -2384,7 +2360,6 @@ compute_antic (void)
/* At the exit block we anticipate nothing. */ /* At the exit block we anticipate nothing. */
BB_VISITED (EXIT_BLOCK_PTR_FOR_FN (cfun)) = 1; BB_VISITED (EXIT_BLOCK_PTR_FOR_FN (cfun)) = 1;
BB_VISITED_WITH_VISITED_SUCCS (EXIT_BLOCK_PTR_FOR_FN (cfun)) = 1;
/* For ANTIC computation we need a postorder that also guarantees that /* For ANTIC computation we need a postorder that also guarantees that
a block with a single successor is visited after its successor. a block with a single successor is visited after its successor.
......
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