#include "target.h"
/* local function prototypes */
-static void main_tree_if_conversion (void);
+static unsigned int main_tree_if_conversion (void);
static tree tree_if_convert_stmt (struct loop *loop, tree, tree,
block_stmt_iterator *);
static void tree_if_convert_cond_expr (struct loop *, tree, tree,
tree new_stmt;
new_stmt = ifc_temp_var (TREE_TYPE (*cond), unshare_expr (*cond));
- bsi_insert_after (bsi, new_stmt, BSI_SAME_STMT);
- bsi_next (bsi);
+ bsi_insert_before (bsi, new_stmt, BSI_SAME_STMT);
*cond = TREE_OPERAND (new_stmt, 0);
}
SSA_NAME_DEF_STMT (PHI_RESULT (phi)) = new_stmt;
/* Insert using iterator. */
- bsi_insert_after (bsi, new_stmt, BSI_SAME_STMT);
- bsi_next (bsi);
-
+ bsi_insert_before (bsi, new_stmt, BSI_SAME_STMT);
update_stmt (new_stmt);
if (dump_file && (dump_flags & TDF_DETAILS))
unsigned int orig_loop_num_nodes = loop->num_nodes;
unsigned int i;
unsigned int n_exits;
+ edge *exits;
- get_loop_exit_edges (loop, &n_exits);
+ exits = get_loop_exit_edges (loop, &n_exits);
+ free (exits);
/* Process phi nodes to prepare blocks for merge. */
process_phi_nodes (loop);
/* Create new temporary variable. */
var = create_tmp_var (type, name);
- add_referenced_tmp_var (var);
+ add_referenced_var (var);
/* Build new statement to assign EXP to new variable. */
stmt = build2 (MODIFY_EXPR, type, var, exp);
/* Tree if-conversion pass management. */
-static void
+static unsigned int
main_tree_if_conversion (void)
{
unsigned i, loop_num;
struct loop *loop;
if (!current_loops)
- return;
+ return 0;
loop_num = current_loops->num;
for (i = 0; i < loop_num; i++)
tree_if_conversion (loop, true);
}
-
+ return 0;
}
static bool