mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/77824 (unreachable code in SLSR GIMPLE pass)
2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77824 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return zero cost for copies. (find_candidates_dom_walker::before_dom_children): Replace MODIFY_EXPR with SSA_NAME. (replace_mult_candidate): Likewise. (replace_profitable_candidates): Likewise. From-SVN: r240945
This commit is contained in:
parent
e2be44770c
commit
fbcdc43e3c
|
|
@ -1,3 +1,13 @@
|
||||||
|
2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/77824
|
||||||
|
* gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
|
||||||
|
zero cost for copies.
|
||||||
|
(find_candidates_dom_walker::before_dom_children): Replace
|
||||||
|
MODIFY_EXPR with SSA_NAME.
|
||||||
|
(replace_mult_candidate): Likewise.
|
||||||
|
(replace_profitable_candidates): Likewise.
|
||||||
|
|
||||||
2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* config/s390/s390.h: Wrap more macros args in brackets and fix
|
* config/s390/s390.h: Wrap more macros args in brackets and fix
|
||||||
|
|
|
||||||
|
|
@ -688,6 +688,9 @@ stmt_cost (gimple *gs, bool speed)
|
||||||
|
|
||||||
/* Note that we don't assign costs to copies that in most cases
|
/* Note that we don't assign costs to copies that in most cases
|
||||||
will go away. */
|
will go away. */
|
||||||
|
case SSA_NAME:
|
||||||
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
@ -1693,7 +1696,7 @@ find_candidates_dom_walker::before_dom_children (basic_block bb)
|
||||||
gcc_fallthrough ();
|
gcc_fallthrough ();
|
||||||
|
|
||||||
CASE_CONVERT:
|
CASE_CONVERT:
|
||||||
case MODIFY_EXPR:
|
case SSA_NAME:
|
||||||
case NEGATE_EXPR:
|
case NEGATE_EXPR:
|
||||||
rhs1 = gimple_assign_rhs1 (gs);
|
rhs1 = gimple_assign_rhs1 (gs);
|
||||||
if (TREE_CODE (rhs1) != SSA_NAME)
|
if (TREE_CODE (rhs1) != SSA_NAME)
|
||||||
|
|
@ -1724,7 +1727,7 @@ find_candidates_dom_walker::before_dom_children (basic_block bb)
|
||||||
slsr_process_cast (gs, rhs1, speed);
|
slsr_process_cast (gs, rhs1, speed);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODIFY_EXPR:
|
case SSA_NAME:
|
||||||
slsr_process_copy (gs, rhs1, speed);
|
slsr_process_copy (gs, rhs1, speed);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -2010,7 +2013,7 @@ replace_mult_candidate (slsr_cand_t c, tree basis_name, widest_int bump)
|
||||||
&& bump.to_shwi () != HOST_WIDE_INT_MIN
|
&& bump.to_shwi () != HOST_WIDE_INT_MIN
|
||||||
/* It is not useful to replace casts, copies, or adds of
|
/* It is not useful to replace casts, copies, or adds of
|
||||||
an SSA name and a constant. */
|
an SSA name and a constant. */
|
||||||
&& cand_code != MODIFY_EXPR
|
&& cand_code != SSA_NAME
|
||||||
&& !CONVERT_EXPR_CODE_P (cand_code)
|
&& !CONVERT_EXPR_CODE_P (cand_code)
|
||||||
&& cand_code != PLUS_EXPR
|
&& cand_code != PLUS_EXPR
|
||||||
&& cand_code != POINTER_PLUS_EXPR
|
&& cand_code != POINTER_PLUS_EXPR
|
||||||
|
|
@ -3445,7 +3448,7 @@ replace_profitable_candidates (slsr_cand_t c)
|
||||||
to a cast or copy. */
|
to a cast or copy. */
|
||||||
if (i >= 0
|
if (i >= 0
|
||||||
&& profitable_increment_p (i)
|
&& profitable_increment_p (i)
|
||||||
&& orig_code != MODIFY_EXPR
|
&& orig_code != SSA_NAME
|
||||||
&& !CONVERT_EXPR_CODE_P (orig_code))
|
&& !CONVERT_EXPR_CODE_P (orig_code))
|
||||||
{
|
{
|
||||||
if (phi_dependent_cand_p (c))
|
if (phi_dependent_cand_p (c))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue