re PR tree-optimization/27548 (ICE: SSA corruption - Conflict across an abnormal edge)
PR tree-optimization/27548 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life range of ssa names that appear on abnormal edges. * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export. * tree-flow.h (contains_abnormal_ssa_name_p): Declare. From-SVN: r113853
This commit is contained in:
parent
7bab4b9026
commit
e5db35150e
@ -1,3 +1,11 @@
|
||||
2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
|
||||
|
||||
PR tree-optimization/27548
|
||||
* tree-scalar-evolution.c (scev_const_prop): Do not prolong life
|
||||
range of ssa names that appear on abnormal edges.
|
||||
* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
|
||||
* tree-flow.h (contains_abnormal_ssa_name_p): Declare.
|
||||
|
||||
2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
|
||||
|
||||
PR middle-end/27620
|
||||
|
@ -842,6 +842,7 @@ bool can_unroll_loop_p (struct loop *loop, unsigned factor,
|
||||
struct tree_niter_desc *niter);
|
||||
void tree_unroll_loop (struct loops *, struct loop *, unsigned,
|
||||
edge, struct tree_niter_desc *);
|
||||
bool contains_abnormal_ssa_name_p (tree);
|
||||
|
||||
/* In tree-ssa-threadedge.c */
|
||||
extern bool potentially_threadable_block (basic_block);
|
||||
|
@ -2802,7 +2802,11 @@ scev_const_prop (void)
|
||||
def = analyze_scalar_evolution_in_loop (ex_loop, loop, def, NULL);
|
||||
def = compute_overall_effect_of_inner_loop (ex_loop, def);
|
||||
if (!tree_does_not_contain_chrecs (def)
|
||||
|| chrec_contains_symbols_defined_in_loop (def, ex_loop->num))
|
||||
|| chrec_contains_symbols_defined_in_loop (def, ex_loop->num)
|
||||
/* Moving the computation from the loop may prolong life range
|
||||
of some ssa names, which may cause problems if they appear
|
||||
on abnormal edges. */
|
||||
|| contains_abnormal_ssa_name_p (def))
|
||||
continue;
|
||||
|
||||
/* Eliminate the phi node and replace it by a computation outside
|
||||
|
@ -678,7 +678,7 @@ idx_contains_abnormal_ssa_name_p (tree base, tree *index,
|
||||
/* Returns true if EXPR contains a ssa name that occurs in an
|
||||
abnormal phi node. */
|
||||
|
||||
static bool
|
||||
bool
|
||||
contains_abnormal_ssa_name_p (tree expr)
|
||||
{
|
||||
enum tree_code code;
|
||||
|
Loading…
Reference in New Issue
Block a user