#include "ircons_t.h"
#include "irnode_t.h"
#include "irgmod.h"
-#include "irtools.h"
+#include "irpass.h"
#define set_bit(n) (returns[(n) >> 3] |= 1 << ((n) & 7))
#define get_bit(n) (returns[(n) >> 3] & (1 << ((n) & 7)))
* res = c;
* return res;
*/
-void normalize_one_return(ir_graph *irg) {
+void normalize_one_return(ir_graph *irg)
+{
ir_node *endbl = get_irg_end_block(irg);
int i, j, k, n, last_idx, n_rets, n_ret_vals = -1;
unsigned char *returns;
* trouts and callee-state should be still valid
*/
set_irg_doms_inconsistent(irg);
- set_irg_outs_inconsistent(irg);
set_irg_extblk_inconsistent(irg);
- set_irg_loopinfo_inconsistent(irg);
}
/* Create a graph pass. */
* with the Return, otherwise they are dead (because the Return leaves
* the graph, so no more users of the other nodes can exists.
*
- * We can move a Return, if it's predecessors are Phi nodes or
+ * We can move a Return, if its predecessors are Phi nodes or
* comes from another block. In the later case, it is always possible
* to move the Return one block up, because the predecessor block must
* dominate the Return block (SSA) and then it dominates the predecessor
* All predecessors of the Return block must be Jmp's of course, or we
* cannot move it up, so we add blocks if needed.
*/
-static int can_move_ret(ir_node *ret) {
+static int can_move_ret(ir_node *ret)
+{
ir_node *retbl = get_nodes_block(ret);
int i, n = get_irn_arity(ret);
* else
* return c;
*/
-void normalize_n_returns(ir_graph *irg) {
+void normalize_n_returns(ir_graph *irg)
+{
int i, j, n, n_rets, n_finals, n_ret_vals;
ir_node *list = NULL;
ir_node *final = NULL;
dbg_info *dbgi = get_irn_dbg_info(ret);
ir_node *phiM;
- list = get_irn_link(ret);
+ list = (ir_node*)get_irn_link(ret);
--n_rets;
n = get_Block_n_cfgpreds(block);
}
/* remove the Jmp, we have placed a Return here */
- exchange(jmp, new_r_Bad(irg));
+ exchange(jmp, new_r_Bad(irg, mode_X));
}
/*
n = get_End_n_keepalives(end);
for (i = 0; i < n; ++i) {
if (get_End_keepalive(end, i) == phiM) {
- set_End_keepalive(end, i, new_r_Bad(irg));
+ set_End_keepalive(end, i, new_r_Bad(irg, mode_M));
break;
}
}
*/
in = ALLOCAN(ir_node*, n_finals);
- for (i = 0; final; ++i, final = get_irn_link(final))
+ for (i = 0; final != NULL; ++i, final = (ir_node*)get_irn_link(final))
in[i] = final;
exchange(endbl, new_r_Block(irg, n_finals, in));
*/
set_irg_doms_inconsistent(irg);
set_irg_extblk_inconsistent(irg); /* may not be needed */
- set_irg_outs_inconsistent(irg);
- set_irg_loopinfo_inconsistent(current_ir_graph);
}
/* Create a graph pass. */