Commit 32fa3623 by Richard Biener Committed by Richard Biener

re PR tree-optimization/80113 (ICE in set_var_live_on_entry at tree-ssa-live.c:1018)

2017-03-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80113
	* graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
	allocate extra SSA name for PHI def.
	(add_close_phis_to_outer_loops): Likewise.
	(add_close_phis_to_merge_points): Likewise.
	(copy_loop_close_phi_args): Likewise.
	(copy_cond_phi_nodes): Likewise.

From-SVN: r246277
parent 243e28bf
2017-03-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/80113
* graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
allocate extra SSA name for PHI def.
(add_close_phis_to_outer_loops): Likewise.
(add_close_phis_to_merge_points): Likewise.
(copy_loop_close_phi_args): Likewise.
(copy_cond_phi_nodes): Likewise.
2017-03-20 Martin Liska <mliska@suse.cz> 2017-03-20 Martin Liska <mliska@suse.cz>
PR middle-end/79753 PR middle-end/79753
......
...@@ -1891,7 +1891,7 @@ copy_loop_phi_nodes (basic_block bb, basic_block new_bb) ...@@ -1891,7 +1891,7 @@ copy_loop_phi_nodes (basic_block bb, basic_block new_bb)
if (is_gimple_reg (res) && scev_analyzable_p (res, region->region)) if (is_gimple_reg (res) && scev_analyzable_p (res, region->region))
continue; continue;
gphi *new_phi = create_phi_node (SSA_NAME_VAR (res), new_bb); gphi *new_phi = create_phi_node (NULL_TREE, new_bb);
tree new_res = create_new_def_for (res, new_phi, tree new_res = create_new_def_for (res, new_phi,
gimple_phi_result_ptr (new_phi)); gimple_phi_result_ptr (new_phi));
set_rename (res, new_res); set_rename (res, new_res);
...@@ -1991,7 +1991,7 @@ add_close_phis_to_outer_loops (tree last_merge_name, edge last_e, ...@@ -1991,7 +1991,7 @@ add_close_phis_to_outer_loops (tree last_merge_name, edge last_e,
if (!bb_contains_loop_close_phi_nodes (bb) || !single_succ_p (bb)) if (!bb_contains_loop_close_phi_nodes (bb) || !single_succ_p (bb))
bb = split_edge (e); bb = split_edge (e);
gphi *close_phi = create_phi_node (SSA_NAME_VAR (last_merge_name), bb); gphi *close_phi = create_phi_node (NULL_TREE, bb);
tree res = create_new_def_for (last_merge_name, close_phi, tree res = create_new_def_for (last_merge_name, close_phi,
gimple_phi_result_ptr (close_phi)); gimple_phi_result_ptr (close_phi));
set_rename (old_close_phi_name, res); set_rename (old_close_phi_name, res);
...@@ -2036,7 +2036,7 @@ add_close_phis_to_merge_points (gphi *old_close_phi, gphi *new_close_phi, ...@@ -2036,7 +2036,7 @@ add_close_phis_to_merge_points (gphi *old_close_phi, gphi *new_close_phi,
last_merge_name = add_close_phis_to_outer_loops (last_merge_name, merge_e, last_merge_name = add_close_phis_to_outer_loops (last_merge_name, merge_e,
old_close_phi); old_close_phi);
gphi *merge_phi = create_phi_node (SSA_NAME_VAR (old_close_phi_name), new_merge_bb); gphi *merge_phi = create_phi_node (NULL_TREE, new_merge_bb);
tree merge_res = create_new_def_for (old_close_phi_name, merge_phi, tree merge_res = create_new_def_for (old_close_phi_name, merge_phi,
gimple_phi_result_ptr (merge_phi)); gimple_phi_result_ptr (merge_phi));
set_rename (old_close_phi_name, merge_res); set_rename (old_close_phi_name, merge_res);
...@@ -2089,7 +2089,7 @@ copy_loop_close_phi_args (basic_block old_bb, basic_block new_bb, bool postpone) ...@@ -2089,7 +2089,7 @@ copy_loop_close_phi_args (basic_block old_bb, basic_block new_bb, bool postpone)
/* Loop close phi nodes should not be scev_analyzable_p. */ /* Loop close phi nodes should not be scev_analyzable_p. */
gcc_unreachable (); gcc_unreachable ();
gphi *new_close_phi = create_phi_node (SSA_NAME_VAR (res), new_bb); gphi *new_close_phi = create_phi_node (NULL_TREE, new_bb);
tree new_res = create_new_def_for (res, new_close_phi, tree new_res = create_new_def_for (res, new_close_phi,
gimple_phi_result_ptr (new_close_phi)); gimple_phi_result_ptr (new_close_phi));
set_rename (res, new_res); set_rename (res, new_res);
...@@ -2472,7 +2472,7 @@ copy_cond_phi_nodes (basic_block bb, basic_block new_bb, vec<tree> iv_map) ...@@ -2472,7 +2472,7 @@ copy_cond_phi_nodes (basic_block bb, basic_block new_bb, vec<tree> iv_map)
if (virtual_operand_p (res)) if (virtual_operand_p (res))
continue; continue;
gphi *new_phi = create_phi_node (SSA_NAME_VAR (res), new_bb); gphi *new_phi = create_phi_node (NULL_TREE, new_bb);
tree new_res = create_new_def_for (res, new_phi, tree new_res = create_new_def_for (res, new_phi,
gimple_phi_result_ptr (new_phi)); gimple_phi_result_ptr (new_phi));
set_rename (res, new_res); set_rename (res, new_res);
......
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