diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2016-10-18 13:35:19 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2016-10-18 13:35:19 +0000 |
commit | c5026021514a0a92f1f03a26ebeb10fefc5b33f9 (patch) | |
tree | b2e72b352801f83c67314db977aa637afa1932ed /gcc | |
parent | 421a8ed41201b3e6e379f8fda5834ce8617b94f1 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple-ssa-strength-reduction.c | 4 |
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 |