- bsi = bsi_for_stmt (info.arr_ref_first);
- tmp_u = make_rename_temp (utype, "csui");
-
- cast = fold_convert (utype, info.index_expr);
- cast_assign = build_gimple_modify_stmt (tmp_u, cast);
- find_new_referenced_vars (&cast_assign);
- bsi_insert_before (&bsi, cast_assign, BSI_SAME_STMT);
- mark_symbols_for_renaming (cast_assign);
-
- ulb = fold_convert (utype, info.range_min);
- minus = fold_build2 (MINUS_EXPR, utype, tmp_u, ulb);
- 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);
- bsi_insert_before (&bsi, minus_assign, BSI_SAME_STMT);
- mark_symbols_for_renaming (minus_assign);
-
- bound = fold_convert (utype, info.range_size);
-
- if_expr = build3 (COND_EXPR, void_type_node,
- build2 (LE_EXPR, boolean_type_node, tmp_u, bound),
- NULL_TREE, NULL_TREE);
-
- find_new_referenced_vars (&if_expr);
- bsi_insert_before (&bsi, if_expr, BSI_SAME_STMT);
- mark_symbols_for_renaming (if_expr);
+ gsi = gsi_for_stmt (info.arr_ref_first);
+ tmp_u_var = create_tmp_var (utype, "csui");
+ add_referenced_var (tmp_u_var);
+ tmp_u_1 = make_ssa_name (tmp_u_var, NULL);
+
+ cast = fold_convert_loc (loc, utype, info.index_expr);
+ cast_assign = gimple_build_assign (tmp_u_1, cast);
+ SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign;
+ gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT);
+ update_stmt (cast_assign);
+
+ ulb = fold_convert_loc (loc, utype, info.range_min);
+ minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb);
+ minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true,
+ GSI_SAME_STMT);
+ tmp_u_2 = make_ssa_name (tmp_u_var, NULL);
+ minus_assign = gimple_build_assign (tmp_u_2, minus);
+ SSA_NAME_DEF_STMT (tmp_u_2) = minus_assign;
+ gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT);
+ update_stmt (minus_assign);
+
+ bound = fold_convert_loc (loc, utype, info.range_size);
+ cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE);
+ gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
+ update_stmt (cond_stmt);