mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 04:50:25 +08:00
re PR tree-optimization/19937 (Wrong loop exit (causes binutils to fail))
PR tree-optimization/19937 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value to the type of the induction variable. From-SVN: r95535
This commit is contained in:
parent
bd182be84e
commit
9e7376e595
@ -1,3 +1,9 @@
|
||||
2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
|
||||
|
||||
PR tree-optimization/19937
|
||||
* tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
|
||||
to the type of the induction variable.
|
||||
|
||||
2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
PR rtl-optimization/20117
|
||||
|
@ -4878,15 +4878,17 @@ rewrite_use_compare (struct ivopts_data *data,
|
||||
|
||||
if (may_eliminate_iv (data, use, cand, &compare, &bound))
|
||||
{
|
||||
tree var = var_at_stmt (data->current_loop, cand, use->stmt);
|
||||
tree var_type = TREE_TYPE (var);
|
||||
|
||||
bound = fold_convert (var_type, bound);
|
||||
op = force_gimple_operand (unshare_expr (bound), &stmts,
|
||||
true, NULL_TREE);
|
||||
|
||||
if (stmts)
|
||||
bsi_insert_before (&bsi, stmts, BSI_SAME_STMT);
|
||||
|
||||
*use->op_p = build2 (compare, boolean_type_node,
|
||||
var_at_stmt (data->current_loop,
|
||||
cand, use->stmt), op);
|
||||
*use->op_p = build2 (compare, boolean_type_node, var, op);
|
||||
modify_stmt (use->stmt);
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user