sparc: avoid explicitely querying the barrier
authorMatthias Braun <matze@braunis.de>
Wed, 2 Mar 2011 12:21:33 +0000 (13:21 +0100)
committerMatthias Braun <matze@braunis.de>
Fri, 4 Mar 2011 19:14:03 +0000 (20:14 +0100)
ir/be/sparc/sparc_transform.c

index 338fae2..d1b1c0a 100644 (file)
@@ -1853,17 +1853,19 @@ static ir_node *gen_Proj_Start(ir_node *node)
 {
        ir_node *block     = get_nodes_block(node);
        ir_node *new_block = be_transform_node(block);
-       ir_node *barrier   = be_transform_node(get_Proj_pred(node));
        long     pn        = get_Proj_proj(node);
+       /* make sure prolog is constructed */
+       be_transform_node(get_Proj_pred(node));
 
        switch ((pn_Start) pn) {
        case pn_Start_X_initial_exec:
                /* exchange ProjX with a jump */
                return new_bd_sparc_Ba(NULL, new_block);
        case pn_Start_M:
-               return new_r_Proj(barrier, mode_M, 0);
+               return be_prolog_get_memory(abihelper);
        case pn_Start_T_args:
-               return barrier;
+               /* we should never need this explicitely */
+               return new_r_Bad(get_irn_irg(block));
        case pn_Start_P_frame_base:
                return get_frame_base();
        case pn_Start_P_tls: