diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2016-10-13 01:08:20 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2016-10-13 01:08:20 +0000 |
commit | 457e189d04c97e71e14ab3ea8d5c32510b9a0616 (patch) | |
tree | 86a1336efcbc6764e25acc5f656367d7f03d46e8 /gcc | |
parent | 72640c178d0b4349a5c5b3310386fec36eef3434 (diff) | |
download | gcc-457e189d04c97e71e14ab3ea8d5c32510b9a0616.zip gcc-457e189d04c97e71e14ab3ea8d5c32510b9a0616.tar.gz gcc-457e189d04c97e71e14ab3ea8d5c32510b9a0616.tar.bz2 |
re PR tree-optimization/77937 (ICE: in replace_one_candidate, at gimple-ssa-strength-reduction.c:3370)
2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/77937
* gimple-ssa-strength-reduction.c (analyze_increments): Use
POINTER_TYPE_P on the candidate type to determine whether
candidates in this chain require pointer arithmetic.
From-SVN: r241082
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/gimple-ssa-strength-reduction.c | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12a324c..600700a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> + + PR tree-optimization/77937 + * gimple-ssa-strength-reduction.c (analyze_increments): Use + POINTER_TYPE_P on the candidate type to determine whether + candidates in this chain require pointer arithmetic. + 2016-10-12 Eric Botcazou <ebotcazou@adacore.com> * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c index b1a6602..cfa50d34 100644 --- a/gcc/gimple-ssa-strength-reduction.c +++ b/gcc/gimple-ssa-strength-reduction.c @@ -2816,8 +2816,7 @@ analyze_increments (slsr_cand_t first_dep, machine_mode mode, bool speed) else if (incr == 0 || incr == 1 || (incr == -1 - && (gimple_assign_rhs_code (first_dep->cand_stmt) - != POINTER_PLUS_EXPR))) + && !POINTER_TYPE_P (first_dep->cand_type))) incr_vec[i].cost = COST_NEUTRAL; /* FORNOW: If we need to add an initializer, give up if a cast from |