aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2016-10-13 01:08:20 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2016-10-13 01:08:20 +0000
commit457e189d04c97e71e14ab3ea8d5c32510b9a0616 (patch)
tree86a1336efcbc6764e25acc5f656367d7f03d46e8 /gcc
parent72640c178d0b4349a5c5b3310386fec36eef3434 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/gimple-ssa-strength-reduction.c3
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