aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2016-10-18 13:35:19 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2016-10-18 13:35:19 +0000
commitc5026021514a0a92f1f03a26ebeb10fefc5b33f9 (patch)
treeb2e72b352801f83c67314db977aa637afa1932ed
parent421a8ed41201b3e6e379f8fda5834ce8617b94f1 (diff)
downloadgcc-c5026021514a0a92f1f03a26ebeb10fefc5b33f9.zip
gcc-c5026021514a0a92f1f03a26ebeb10fefc5b33f9.tar.gz
gcc-c5026021514a0a92f1f03a26ebeb10fefc5b33f9.tar.bz2
re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer) operands to plus/minus)
2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77916 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate stopgap fix, as pointers with -1 increment are still broken. From-SVN: r241305
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimple-ssa-strength-reduction.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bd4435a..2ce7f47 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/77916
+ * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
+ stopgap fix, as pointers with -1 increment are still broken.
+
2016-10-18 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index c6bc5a2..45698d2 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -2825,6 +2825,10 @@ analyze_increments (slsr_cand_t first_dep, machine_mode mode, bool speed)
&& !POINTER_TYPE_P (first_dep->cand_type)))
incr_vec[i].cost = COST_NEUTRAL;
+ /* FIXME: Still having trouble with pointers with a -1 increment. */
+ 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.
This could eventually be handled better by expressly retaining the