make use of the new possibility to avoid firm_parameter_t
authorMatthias Braun <matze@braunis.de>
Tue, 25 May 2010 13:49:33 +0000 (13:49 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 25 May 2010 13:49:33 +0000 (13:49 +0000)
[r27585]

ast2firm.c
driver/firm_opt.c
driver/firm_opt.h

index 0dfd8c5..9c122bd 100644 (file)
@@ -129,7 +129,7 @@ static void enqueue_inner_function(entity_t *entity)
        ARR_APP1(entity_t*, inner_functions, entity);
 }
 
-ir_node *uninitialized_local_var(ir_graph *irg, ir_mode *mode, int pos)
+static ir_node *uninitialized_local_var(ir_graph *irg, ir_mode *mode, int pos)
 {
        const entity_t *entity = get_irg_loc_description(irg, pos);
 
@@ -6078,6 +6078,7 @@ void translation_unit_to_firm(translation_unit_t *unit)
 {
        /* initialize firm arithmetic */
        tarval_set_integer_overflow_mode(TV_OVERFLOW_WRAP);
+       ir_set_uninitialized_local_variable_func(uninitialized_local_var);
 
        /* just to be sure */
        continue_label           = NULL;
index 7525629..f76e99c 100644 (file)
@@ -697,9 +697,8 @@ static void do_firm_lowering(const char *input_filename)
  */
 void gen_firm_init(void)
 {
-       firm_parameter_t params;
-       unsigned         pattern = 0;
-       int              i;
+       unsigned pattern = 0;
+       int      i;
 
        for (i = 0; i < n_opts; ++i) {
                timers[i] = ir_timer_new();
@@ -718,15 +717,10 @@ void gen_firm_init(void)
        if (firm_dump.stat_dag)
                pattern |= FIRMSTAT_COUNT_DAG;
 
-       memset(&params, 0, sizeof(params));
-       params.size                  = sizeof(params);
-       params.enable_statistics     = firm_dump.statistic == STAT_NONE ? 0 :
-               FIRMSTAT_ENABLED | FIRMSTAT_COUNT_STRONG_OP | FIRMSTAT_COUNT_CONSTS
-               | pattern;
-       params.initialize_local_func = uninitialized_local_var;
-       params.cc_mask               = 0; /* no regparam, cdecl */
-
-       ir_init(&params);
+       ir_init(NULL);
+       firm_init_stat(firm_dump.statistic == STAT_NONE ?
+                       0 : FIRMSTAT_ENABLED | FIRMSTAT_COUNT_STRONG_OP
+                       | FIRMSTAT_COUNT_CONSTS | pattern);
 
        if (firm_be_opt.selection == BE_FIRM_BE) {
                const backend_params *be_params = be_get_backend_param();
index 08be5c5..16a8887 100644 (file)
@@ -92,12 +92,6 @@ enum rts_names {
 
 extern ir_entity_ptr rts_entities[rts_max];
 
-/**
- * This function is called, whenever a local variable is used before
- * definition.
- */
-extern ir_node *uninitialized_local_var(ir_graph *irg, ir_mode *mode, int pos);
-
 /** Debug printf implementation. */
 extern void dbg_printf(const char *fmt, ...);