From: Bill Schmidt Date: Thu, 13 Oct 2016 15:34:22 +0000 (+0000) Subject: re PR tree-optimization/77937 (ICE: in replace_one_candidate, at gimple-ssa-strength... X-Git-Tag: upstream/12.2.0~44076 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d4035dcd7b0be8a9edefb9af8121ae0eaabaa7c;p=platform%2Fupstream%2Fgcc.git re PR tree-optimization/77937 (ICE: in replace_one_candidate, at gimple-ssa-strength-reduction.c:3370) 2016-10-13 Bill Schmidt PR tree-optimization/77937 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost to infinite when we have a pointer with an increment of -1. From-SVN: r241125 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dfd16fe..7362986 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-10-13 Bill Schmidt + + PR tree-optimization/77937 + * gimple-ssa-strength-reduction.c (analyze_increments): Set cost + to infinite when we have a pointer with an increment of -1. + 2016-10-13 Thomas Preud'homme * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c index cfa50d34..72862f8 100644 --- a/gcc/gimple-ssa-strength-reduction.c +++ b/gcc/gimple-ssa-strength-reduction.c @@ -2818,6 +2818,11 @@ analyze_increments (slsr_cand_t first_dep, machine_mode mode, bool speed) || (incr == -1 && !POINTER_TYPE_P (first_dep->cand_type))) incr_vec[i].cost = COST_NEUTRAL; + + /* FIXME: We don't handle pointers with a -1 increment yet. + They are usually unprofitable anyway. */ + else if (incr == -1 && POINTER_TYPE_P (first_dep->cand_type)) + incr_vec[i].cost = COST_INFINITE; /* FORNOW: If we need to add an initializer, give up if a cast from the candidate's type to its stride's type can lose precision.