place transformed StackParam nodes in the user Block
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Mon, 27 Mar 2006 12:46:18 +0000 (12:46 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Mon, 27 Mar 2006 12:46:18 +0000 (12:46 +0000)
ir/be/ia32/ia32_transform.c

index 64349dc..c32c060 100644 (file)
@@ -1618,6 +1618,12 @@ static ir_node *gen_StackParam(ia32_transform_env_t *env) {
        entity  *ent    = be_get_frame_entity(node);
        ir_mode *mode   = env->mode;
 
+       /* If the StackParam has only one user ->     */
+       /* put it in the Block where the user resides */
+       if (get_irn_n_edges(node) == 1) {
+               env->block = get_nodes_block(get_edge_src_irn(get_irn_out_edge_first(node)));
+       }
+
        if (mode_is_float(mode)) {
                new_op = new_rd_ia32_fLoad(env->dbg, env->irg, env->block, ptr, noreg, mem, mode_T);
        }