diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5895ca..45670bc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2016-05-03 Bin Cheng <bin.cheng@arm.com> + * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on + before using it. + +2016-05-03 Bin Cheng <bin.cheng@arm.com> + * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber cbase. diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index e6d35a4..b24cac4 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -4846,12 +4846,12 @@ get_computation_cost_at (struct ivopts_data *data, /* Record setup cost in scrach field. */ cost.scratch = cost.cost; - if (inv_expr_id) + if (inv_expr_id && depends_on && *depends_on) { *inv_expr_id = get_loop_invariant_expr_id (data, ubase, cbase, ratio, address_p); /* Clear depends on. */ - if (*inv_expr_id != -1 && depends_on && *depends_on) + if (*inv_expr_id != -1) bitmap_clear (*depends_on); } |