beabi: Remove pointless local variable.
[libfirm] / ir / be / beabi.c
index 7d6fbb2..72ce78d 100644 (file)
@@ -1179,24 +1179,18 @@ static void reg_map_to_arr(reg_node_map_t *res, pmap *reg_map)
  * Creates a be_Return for a Return node.
  *
  * @param @env  the abi environment
- * @param irn   the Return node or NULL if there was none
- * @param bl    the block where the be_Retun should be placed
- * @param mem   the current memory
- * @param n_res number of return results
+ * @param irn   the Return node
  */
-static ir_node *create_be_return(be_abi_irg_t *env, ir_node *irn, ir_node *bl,
-               ir_node *mem, int n_res)
+static ir_node *create_be_return(be_abi_irg_t *const env, ir_node *const irn)
 {
+       ir_node          *const bl = get_nodes_block(irn);
        be_abi_call_t    *call     = env->call;
        ir_graph         *irg      = get_Block_irg(bl);
        const arch_env_t *arch_env = be_get_irg_arch_env(irg);
-       dbg_info *dbgi;
        pmap *reg_map  = pmap_create();
        ir_node *keep  = pmap_get(ir_node, env->keep_map, bl);
        size_t in_max;
-       ir_node *ret;
        int i, n;
-       unsigned pop;
        ir_node **in;
        ir_node *stack;
        const arch_register_t **regs;
@@ -1216,6 +1210,7 @@ static ir_node *create_be_return(be_abi_irg_t *env, ir_node *irn, ir_node *bl,
                remove_End_keepalive(get_irg_end(irg), keep);
        }
 
+       int const n_res = get_Return_n_ress(irn);
        /* Insert results for Return into the register map. */
        for (i = 0; i < n_res; ++i) {
                ir_node *res           = get_Return_res(irn, i);
@@ -1242,7 +1237,7 @@ static ir_node *create_be_return(be_abi_irg_t *env, ir_node *irn, ir_node *bl,
        in   = ALLOCAN(ir_node*,               in_max);
        regs = ALLOCAN(arch_register_t const*, in_max);
 
-       in[0]   = mem;
+       in[0]   = get_Return_mem(irn);
        in[1]   = be_abi_reg_map_get(reg_map, arch_env->sp);
        regs[0] = NULL;
        regs[1] = arch_env->sp;
@@ -1269,14 +1264,8 @@ static ir_node *create_be_return(be_abi_irg_t *env, ir_node *irn, ir_node *bl,
        }
 
        /* The in array for the new back end return is now ready. */
-       if (irn != NULL) {
-               dbgi = get_irn_dbg_info(irn);
-       } else {
-               dbgi = NULL;
-       }
-       /* we have to pop the shadow parameter in in case of struct returns */
-       pop = call->pop;
-       ret = be_new_Return(dbgi, irg, bl, n_res, pop, n, in);
+       dbg_info *const dbgi = get_irn_dbg_info(irn);
+       ir_node  *const ret  = be_new_Return(dbgi, irg, bl, n_res, call->pop, n, in);
 
        /* Set the register classes of the return's parameter accordingly. */
        for (i = 0; i < n; ++i) {
@@ -1581,9 +1570,7 @@ static void modify_irg(ir_graph *const irg, be_abi_irg_t *const env)
                ir_node *irn = get_Block_cfgpred(end, i);
 
                if (is_Return(irn)) {
-                       ir_node *blk = get_nodes_block(irn);
-                       ir_node *mem = get_Return_mem(irn);
-                       ir_node *ret = create_be_return(env, irn, blk, mem, get_Return_n_ress(irn));
+                       ir_node *const ret = create_be_return(env, irn);
                        exchange(irn, ret);
                }
        }