Commit 04e78aa9 by Jakub Jelinek Committed by Jakub Jelinek

tree-switch-conversion.c (build_one_array, [...]): Use build_gimple_modify_stmt.

	* tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
	build_gimple_modify_stmt.
	(build_arrays, gen_inbound_check): Likewise.  Force RHS to be
	gimple operand.  Use fold_build* instead of build*.

From-SVN: r137454
parent 0e1f4c6b
2008-07-04 Jakub Jelinek <jakub@redhat.com>
* tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
build_gimple_modify_stmt.
(build_arrays, gen_inbound_check): Likewise. Force RHS to be
gimple operand. Use fold_build* instead of build*.
2008-07-04 Richard Guenther <rguenther@suse.de> 2008-07-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (lookup_vi_for_tree): Declare. * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
......
...@@ -482,7 +482,7 @@ build_one_array (tree swtch, int num, tree arr_index_type, tree phi, tree tidx) ...@@ -482,7 +482,7 @@ build_one_array (tree swtch, int num, tree arr_index_type, tree phi, tree tidx)
fetch = build4 (ARRAY_REF, value_type, decl, tidx, NULL_TREE, fetch = build4 (ARRAY_REF, value_type, decl, tidx, NULL_TREE,
NULL_TREE); NULL_TREE);
load = build2 (GIMPLE_MODIFY_STMT, void_type_node, name, fetch); load = build_gimple_modify_stmt (name, fetch);
SSA_NAME_DEF_STMT (name) = load; SSA_NAME_DEF_STMT (name) = load;
bsi = bsi_for_stmt (swtch); bsi = bsi_for_stmt (swtch);
...@@ -507,13 +507,17 @@ build_arrays (tree swtch) ...@@ -507,13 +507,17 @@ build_arrays (tree swtch)
tree phi = phi_nodes (info.final_bb); tree phi = phi_nodes (info.final_bb);
int i; int i;
bsi = bsi_for_stmt (swtch);
arr_index_type = build_index_type (info.range_size); arr_index_type = build_index_type (info.range_size);
tidx = make_rename_temp (arr_index_type, "csti"); tidx = make_rename_temp (arr_index_type, "csti");
sub = build2 (MINUS_EXPR, TREE_TYPE (info.index_expr), info.index_expr, sub = fold_build2 (MINUS_EXPR, TREE_TYPE (info.index_expr), info.index_expr,
fold_convert (TREE_TYPE (info.index_expr), info.range_min)); fold_convert (TREE_TYPE (info.index_expr),
sub = build2 (GIMPLE_MODIFY_STMT, void_type_node, tidx, sub); info.range_min));
sub = force_gimple_operand_bsi (&bsi, fold_convert (arr_index_type, sub),
false, NULL, true, BSI_SAME_STMT);
sub = build_gimple_modify_stmt (tidx, sub);
bsi = bsi_for_stmt (swtch);
bsi_insert_before (&bsi, sub, BSI_SAME_STMT); bsi_insert_before (&bsi, sub, BSI_SAME_STMT);
mark_symbols_for_renaming (sub); mark_symbols_for_renaming (sub);
info.arr_ref_first = sub; info.arr_ref_first = sub;
...@@ -539,8 +543,7 @@ gen_def_assigns (block_stmt_iterator *bsi) ...@@ -539,8 +543,7 @@ gen_def_assigns (block_stmt_iterator *bsi)
NULL_TREE); NULL_TREE);
info.target_outbound_names[i] = name; info.target_outbound_names[i] = name;
assign = build2 (GIMPLE_MODIFY_STMT, void_type_node, name, assign = build_gimple_modify_stmt (name, info.default_values[i]);
info.default_values[i]);
SSA_NAME_DEF_STMT (name) = assign; SSA_NAME_DEF_STMT (name) = assign;
bsi_insert_before (bsi, assign, BSI_SAME_STMT); bsi_insert_before (bsi, assign, BSI_SAME_STMT);
find_new_referenced_vars (&assign); find_new_referenced_vars (&assign);
...@@ -639,15 +642,17 @@ gen_inbound_check (tree swtch) ...@@ -639,15 +642,17 @@ gen_inbound_check (tree swtch)
bsi = bsi_for_stmt (info.arr_ref_first); bsi = bsi_for_stmt (info.arr_ref_first);
tmp_u = make_rename_temp (utype, "csui"); tmp_u = make_rename_temp (utype, "csui");
cast = build1 (NOP_EXPR, utype, info.index_expr); cast = fold_convert (utype, info.index_expr);
cast_assign = build2 (GIMPLE_MODIFY_STMT, void_type_node, tmp_u, cast); cast_assign = build_gimple_modify_stmt (tmp_u, cast);
find_new_referenced_vars (&cast_assign); find_new_referenced_vars (&cast_assign);
bsi_insert_before (&bsi, cast_assign, BSI_SAME_STMT); bsi_insert_before (&bsi, cast_assign, BSI_SAME_STMT);
mark_symbols_for_renaming (cast_assign); mark_symbols_for_renaming (cast_assign);
ulb = fold_convert (utype, info.range_min); ulb = fold_convert (utype, info.range_min);
minus = build2 (MINUS_EXPR, utype, tmp_u, ulb); minus = fold_build2 (MINUS_EXPR, utype, tmp_u, ulb);
minus_assign = build2 (GIMPLE_MODIFY_STMT, void_type_node, tmp_u, minus); minus = force_gimple_operand_bsi (&bsi, minus, false, NULL, true,
BSI_SAME_STMT);
minus_assign = build_gimple_modify_stmt (tmp_u, minus);
find_new_referenced_vars (&minus_assign); find_new_referenced_vars (&minus_assign);
bsi_insert_before (&bsi, minus_assign, BSI_SAME_STMT); bsi_insert_before (&bsi, minus_assign, BSI_SAME_STMT);
mark_symbols_for_renaming (minus_assign); mark_symbols_for_renaming (minus_assign);
......
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