Commit 6e3d8cb4 by Bill Schmidt Committed by William Schmidt

re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer)…

re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer) operands to plus/minus)

2016-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/77916
	PR tree-optimization/77937
	* gimple-ssa-strength-reduction.c (analyze_increments): Remove
	stopgap fix.
	(insert_initializers): Requirement of initializer for -1 should be
	based on pointer-typedness of the candidate basis.

From-SVN: r241342
parent a04df2ba
2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/77916
PR tree-optimization/77937
* gimple-ssa-strength-reduction.c (analyze_increments): Remove
stopgap fix.
(insert_initializers): Requirement of initializer for -1 should be
based on pointer-typedness of the candidate basis.
2016-10-19 Bin Cheng <bin.cheng@arm.com> 2016-10-19 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/78005 PR tree-optimization/78005
......
...@@ -2825,10 +2825,6 @@ analyze_increments (slsr_cand_t first_dep, machine_mode mode, bool speed) ...@@ -2825,10 +2825,6 @@ analyze_increments (slsr_cand_t first_dep, machine_mode mode, bool speed)
&& !POINTER_TYPE_P (first_dep->cand_type))) && !POINTER_TYPE_P (first_dep->cand_type)))
incr_vec[i].cost = COST_NEUTRAL; 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 /* 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. the candidate's type to its stride's type can lose precision.
This could eventually be handled better by expressly retaining the This could eventually be handled better by expressly retaining the
...@@ -3115,7 +3111,7 @@ insert_initializers (slsr_cand_t c) ...@@ -3115,7 +3111,7 @@ insert_initializers (slsr_cand_t c)
if (!profitable_increment_p (i) if (!profitable_increment_p (i)
|| incr == 1 || incr == 1
|| (incr == -1 || (incr == -1
&& gimple_assign_rhs_code (c->cand_stmt) != POINTER_PLUS_EXPR) && (!POINTER_TYPE_P (lookup_cand (c->basis)->cand_type)))
|| incr == 0) || incr == 0)
continue; continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment