mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-26 16:51:01 +08:00
tree-ssa-loop-niter.c (simplify_using_initial_conditions): Limit iteration over the dominators.
2006-06-21 Richrad Guenther <rguenther@suse.de> * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Limit iteration over the dominators. From-SVN: r114840
This commit is contained in:
parent
470145e722
commit
b16fb82dac
@ -1,3 +1,8 @@
|
||||
2006-06-21 Richrad Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
|
||||
Limit iteration over the dominators.
|
||||
|
||||
2006-06-20 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
|
||||
|
@ -886,7 +886,12 @@ tree_simplify_using_condition (tree cond, tree expr)
|
||||
|
||||
return tree_simplify_using_condition_1 (cond, expr);
|
||||
}
|
||||
|
||||
|
||||
/* The maximum number of dominator BBs we search for conditions
|
||||
of loop header copies we use for simplifying a conditional
|
||||
expression. */
|
||||
#define MAX_DOMINATORS_TO_WALK 8
|
||||
|
||||
/* Tries to simplify EXPR using the conditions on entry to LOOP.
|
||||
Record the conditions used for simplification to CONDS_USED.
|
||||
Returns the simplified expression (or EXPR unchanged, if no
|
||||
@ -899,12 +904,16 @@ simplify_using_initial_conditions (struct loop *loop, tree expr,
|
||||
edge e;
|
||||
basic_block bb;
|
||||
tree exp, cond;
|
||||
int cnt = 0;
|
||||
|
||||
if (TREE_CODE (expr) == INTEGER_CST)
|
||||
return expr;
|
||||
|
||||
/* Limit walking the dominators to avoid quadraticness in
|
||||
the number of BBs times the number of loops in degenerate
|
||||
cases. */
|
||||
for (bb = loop->header;
|
||||
bb != ENTRY_BLOCK_PTR;
|
||||
bb != ENTRY_BLOCK_PTR && cnt < MAX_DOMINATORS_TO_WALK;
|
||||
bb = get_immediate_dominator (CDI_DOMINATORS, bb))
|
||||
{
|
||||
if (!single_pred_p (bb))
|
||||
@ -926,6 +935,7 @@ simplify_using_initial_conditions (struct loop *loop, tree expr,
|
||||
cond);
|
||||
|
||||
expr = exp;
|
||||
++cnt;
|
||||
}
|
||||
|
||||
return expr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user