modernize TEMPLATE backend and simplify some backend APIs
[libfirm] / ir / be / arm / arm_transform.c
index 7270047..96353fb 100644 (file)
@@ -218,10 +218,8 @@ static ir_node *gen_Conv(ir_node *node)
                        }
                } else if (USE_VFP(env_cg->isa)) {
                        panic("VFP not supported yet");
-                       return NULL;
                } else {
                        panic("Softfloat not supported yet");
-                       return NULL;
                }
        } else { /* complete in gp registers */
                int src_bits = get_mode_size_bits(src_mode);
@@ -403,11 +401,9 @@ static ir_node *gen_Add(ir_node *node)
                } else if (USE_VFP(env_cg->isa)) {
                        assert(mode != mode_E && "IEEE Extended FP not supported");
                        panic("VFP not supported yet");
-                       return NULL;
                }
                else {
                        panic("Softfloat not supported yet");
-                       return NULL;
                }
        } else {
 #if 0
@@ -462,11 +458,9 @@ static ir_node *gen_Mul(ir_node *node)
                else if (USE_VFP(env_cg->isa)) {
                        assert(mode != mode_E && "IEEE Extended FP not supported");
                        panic("VFP not supported yet");
-                       return NULL;
                }
                else {
                        panic("Softfloat not supported yet");
-                       return NULL;
                }
        }
        assert(mode_is_data(mode));
@@ -506,7 +500,6 @@ static ir_node *gen_Quot(ir_node *node)
        }
        else {
                panic("Softfloat not supported yet");
-               return NULL;
        }
 }
 
@@ -572,10 +565,8 @@ static ir_node *gen_Sub(ir_node *node)
                } else if (USE_VFP(env_cg->isa)) {
                        assert(mode != mode_E && "IEEE Extended FP not supported");
                        panic("VFP not supported yet");
-                       return NULL;
                } else {
                        panic("Softfloat not supported yet");
-                       return NULL;
                }
        } else {
                return gen_int_binop(node, MATCH_SIZE_NEUTRAL,
@@ -1501,7 +1492,7 @@ static ir_node *gen_Phi(ir_node *node)
         * and fix this later */
        phi = new_ir_node(dbgi, irg, block, op_Phi, mode, get_irn_arity(node),
                          get_irn_in(node) + 1);
-       copy_node_attr(node, phi);
+       copy_node_attr(irg, node, phi);
        be_duplicate_deps(node, phi);
 
        arch_set_out_register_req(phi, 0, req);
@@ -1516,7 +1507,7 @@ static ir_node *gen_Phi(ir_node *node)
  */
 static ir_node *bad_transform(ir_node *irn)
 {
-       panic("ARM backend: Not implemented: %+F", irn);
+       panic("ARM backend: unexpected node %+F", irn);
 }
 
 /**
@@ -1586,17 +1577,6 @@ static void arm_register_transformers(void)
        set_transformer(op_Tuple,     bad_transform);
 }
 
-/**
- * Pre-transform all unknown nodes.
- */
-static void arm_pretransform_node(void)
-{
-       arm_code_gen_t *cg = env_cg;
-
-       cg->unknown_gp  = be_pre_transform_node(cg->unknown_gp);
-       cg->unknown_fpa = be_pre_transform_node(cg->unknown_fpa);
-}
-
 /**
  * Initialize fpa Immediate support.
  */
@@ -1644,7 +1624,7 @@ void arm_transform_graph(arm_code_gen_t *cg)
        }
        arm_register_transformers();
        env_cg = cg;
-       be_transform_graph(cg->birg, arm_pretransform_node);
+       be_transform_graph(cg->irg, NULL);
 }
 
 void arm_init_transform(void)