Fix phi arg location in find_implicit_erroneous_behavior

2017-07-20  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/81489
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
	read of phi arg location to before loop that modifies phi.

From-SVN: r250378
This commit is contained in:
Tom de Vries 2017-07-20 07:16:01 +00:00 committed by Tom de Vries
parent 2071f8f980
commit c9930ecd9c
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2017-07-20 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/81489
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
read of phi arg location to before loop that modifies phi.
2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):

View File

@ -442,6 +442,8 @@ find_implicit_erroneous_behavior (void)
if (!integer_zerop (op))
continue;
location_t phi_arg_loc = gimple_phi_arg_location (phi, i);
/* We've got a NULL PHI argument. Now see if the
PHI's result is dereferenced within BB. */
FOR_EACH_IMM_USE_STMT (use_stmt, iter, lhs)
@ -454,7 +456,7 @@ find_implicit_erroneous_behavior (void)
location_t loc = gimple_location (use_stmt)
? gimple_location (use_stmt)
: gimple_phi_arg_location (phi, i);
: phi_arg_loc;
if (stmt_uses_name_in_undefined_way (use_stmt, lhs, loc))
{