X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Ffield_temperature.c;h=f930fe0272cb82fdd93e5a675b8ea3b4e93441b6;hb=3da5ed2598245b896255bc444aaa1768f6098cfe;hp=7fb6fdfbcd61b35019ff68b9909f5b17170a16b5;hpb=0c895460654881eff2b1ee726db0393f06d90e09;p=libfirm diff --git a/ir/ana/field_temperature.c b/ir/ana/field_temperature.c index 7fb6fdfbc..f930fe027 100644 --- a/ir/ana/field_temperature.c +++ b/ir/ana/field_temperature.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -24,9 +24,9 @@ * @date 21.7.2004 * @version $Id$ */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include "config.h" + +#ifdef INTERPROCEDURAL_VIEW #include @@ -53,12 +53,14 @@ /* *************************************************************************** */ /* The entities that can be accessed by this Sel node. */ -int get_Sel_n_accessed_entities(ir_node *sel) { +int get_Sel_n_accessed_entities(ir_node *sel) +{ (void) sel; return 1; } -ir_entity *get_Sel_accessed_entity(ir_node *sel, int pos) { +ir_entity *get_Sel_accessed_entity(ir_node *sel, int pos) +{ (void) pos; return get_Sel_entity(sel); } @@ -67,12 +69,14 @@ ir_entity *get_Sel_accessed_entity(ir_node *sel, int pos) { /* The heuristic */ /* *************************************************************************** */ -int get_irn_loop_call_depth(ir_node *n) { +int get_irn_loop_call_depth(ir_node *n) +{ ir_graph *irg = get_irn_irg(n); return get_irg_loop_depth(irg); } -int get_irn_cfloop_depth(ir_node *n) { +int get_irn_cfloop_depth(ir_node *n) +{ ir_loop *l = get_irn_loop(get_nodes_block(n)); if (l) return get_loop_depth(l); @@ -80,14 +84,16 @@ int get_irn_cfloop_depth(ir_node *n) { return 0; } -int get_irn_recursion_depth(ir_node *n) { +int get_irn_recursion_depth(ir_node *n) +{ ir_graph *irg = get_irn_irg(n); return get_irg_recursion_depth(irg); } /** @@@ the second version of the heuristic. */ -int get_weighted_loop_depth(ir_node *n) { +int get_weighted_loop_depth(ir_node *n) +{ int loop_call_depth = get_irn_loop_call_depth(n); int loop_depth = get_irn_cfloop_depth(n); int recursion_depth = get_irn_recursion_depth(n); @@ -108,7 +114,8 @@ static int default_recursion_weight = 5; @@@ the second version of the heuristic. Return 0 if the node is neither in a loop nor in a recursion. */ -double get_irn_final_cost(ir_node *n) { +double get_irn_final_cost(ir_node *n) +{ double cost_loop = get_irn_exec_freq(n); double cost_method = get_irg_method_execution_frequency(get_irn_irg(n)); int rec_depth = get_irn_recursion_depth(n); @@ -127,7 +134,8 @@ double get_irn_final_cost(ir_node *n) { return cost_loop*(cost_method + cost_rec); } -double get_type_estimated_n_instances(ir_type *tp) { +double get_type_estimated_n_instances(ir_type *tp) +{ int i, n_allocs = get_type_n_allocs(tp); double n_instances = 0; for (i = 0; i < n_allocs; ++i) { @@ -137,15 +145,17 @@ double get_type_estimated_n_instances(ir_type *tp) { return n_instances; } -double get_type_estimated_mem_consumption_bytes(ir_type *tp) { +double get_type_estimated_mem_consumption_bytes(ir_type *tp) +{ (void) tp; assert(0); return 0.0; } -int get_type_estimated_n_fields(ir_type *tp) { +int get_type_estimated_n_fields(ir_type *tp) +{ int s = 0; - switch(get_type_tpop_code(tp)) { + switch (get_type_tpop_code(tp)) { case tpo_primitive: case tpo_pointer: @@ -169,8 +179,8 @@ int get_type_estimated_n_fields(ir_type *tp) { case tpo_array: { long n_elt = DEFAULT_N_ARRAY_ELEMENTS; assert(get_array_n_dimensions(tp) == 1 && "other not implemented"); - if ((get_irn_op(get_array_lower_bound(tp, 0)) == op_Const) && - (get_irn_op(get_array_upper_bound(tp, 0)) == op_Const) ) { + if (is_Const(get_array_lower_bound(tp, 0)) && + is_Const(get_array_upper_bound(tp, 0))) { n_elt = get_array_upper_bound_int(tp, 0) - get_array_upper_bound_int(tp, 0); } s = n_elt; @@ -183,10 +193,11 @@ int get_type_estimated_n_fields(ir_type *tp) { return s; } -int get_type_estimated_size_bytes(ir_type *tp) { +int get_type_estimated_size_bytes(ir_type *tp) +{ int s = 0; - switch(get_type_tpop_code(tp)) { + switch (get_type_tpop_code(tp)) { case tpo_primitive: case tpo_pointer: @@ -212,8 +223,8 @@ int get_type_estimated_size_bytes(ir_type *tp) { int elt_s = get_type_estimated_size_bytes(get_array_element_type(tp)); long n_elt = DEFAULT_N_ARRAY_ELEMENTS; assert(get_array_n_dimensions(tp) == 1 && "other not implemented"); - if ((get_irn_op(get_array_lower_bound(tp, 0)) == op_Const) && - (get_irn_op(get_array_upper_bound(tp, 0)) == op_Const) ) { + if (is_Const(get_array_lower_bound(tp, 0)) && + is_Const(get_array_upper_bound(tp, 0))) { n_elt = get_array_upper_bound_int(tp, 0) - get_array_lower_bound_int(tp, 0); } s = n_elt * elt_s; @@ -226,7 +237,8 @@ int get_type_estimated_size_bytes(ir_type *tp) { return s; } -double get_type_estimated_n_casts(ir_type *tp) { +double get_type_estimated_n_casts(ir_type *tp) +{ int i, n_casts = get_type_n_casts(tp); double n_instances = 0; for (i = 0; i < n_casts; ++i) { @@ -236,7 +248,8 @@ double get_type_estimated_n_casts(ir_type *tp) { return n_instances; } -double get_class_estimated_n_upcasts(ir_type *clss) { +double get_class_estimated_n_upcasts(ir_type *clss) +{ double n_instances = 0; int i, j, n_casts, n_pointertypes; @@ -257,7 +270,8 @@ double get_class_estimated_n_upcasts(ir_type *clss) { return n_instances; } -double get_class_estimated_n_downcasts(ir_type *clss) { +double get_class_estimated_n_downcasts(ir_type *clss) +{ double n_instances = 0; int i, j, n_casts, n_pointertypes; @@ -279,12 +293,14 @@ double get_class_estimated_n_downcasts(ir_type *clss) { } -double get_class_estimated_dispatch_writes(ir_type *clss) { +double get_class_estimated_dispatch_writes(ir_type *clss) +{ return get_type_estimated_n_instances(clss); } /** Returns the number of reads of the dispatch pointer. */ -double get_class_estimated_dispatch_reads (ir_type *clss) { +double get_class_estimated_dispatch_reads (ir_type *clss) +{ int i, n_mems = get_class_n_members(clss); double n_calls = 0; for (i = 0; i < n_mems; ++i) { @@ -294,48 +310,52 @@ double get_class_estimated_dispatch_reads (ir_type *clss) { return n_calls; } -double get_class_estimated_n_dyncalls(ir_type *clss) { +double get_class_estimated_n_dyncalls(ir_type *clss) +{ return get_class_estimated_dispatch_reads(clss) + get_class_estimated_dispatch_writes(clss); } -double get_entity_estimated_n_loads(ir_entity *ent) { +double get_entity_estimated_n_loads(ir_entity *ent) +{ int i, n_acc = get_entity_n_accesses(ent); double n_loads = 0; for (i = 0; i < n_acc; ++i) { ir_node *acc = get_entity_access(ent, i); - if (get_irn_op(acc) == op_Load) { + if (is_Load(acc)) { n_loads += get_irn_final_cost(acc); } } return n_loads; } -double get_entity_estimated_n_stores(ir_entity *ent) { +double get_entity_estimated_n_stores(ir_entity *ent) +{ int i, n_acc = get_entity_n_accesses(ent); double n_stores = 0; for (i = 0; i < n_acc; ++i) { ir_node *acc = get_entity_access(ent, i); - if (get_irn_op(acc) == op_Store) + if (is_Store(acc)) n_stores += get_irn_final_cost(acc); } return n_stores; } /* @@@ Should we evaluate the callee array? */ -double get_entity_estimated_n_calls(ir_entity *ent) { +double get_entity_estimated_n_calls(ir_entity *ent) +{ int i, n_acc = get_entity_n_accesses(ent); double n_calls = 0; for (i = 0; i < n_acc; ++i) { ir_node *acc = get_entity_access(ent, i); - if (get_irn_op(acc) == op_Call) - + if (is_Call(acc)) n_calls += get_irn_final_cost(acc); } return n_calls; } -double get_entity_estimated_n_dyncalls(ir_entity *ent) { +double get_entity_estimated_n_dyncalls(ir_entity *ent) +{ int i, n_acc = get_entity_n_accesses(ent); double n_calls = 0; for (i = 0; i < n_acc; ++i) { @@ -368,7 +388,8 @@ double get_entity_estimated_n_dyncalls(ir_entity *ent) { /* Auxiliary */ /* ------------------------------------------------------------------------- */ -int is_jack_rts_name(ident *name) { +int is_jack_rts_name(ident *name) +{ if (id_is_suffix(new_id_from_str("Exception"), name)) return 1; if (id_is_suffix(new_id_from_str("Throwable"), name)) return 1; if (id_is_suffix(new_id_from_str("Error"), name)) return 1; @@ -385,14 +406,16 @@ int is_jack_rts_name(ident *name) { } -int is_jack_rts_class(ir_type *t) { +int is_jack_rts_class(ir_type *t) +{ ident *name = get_type_ident(t); return is_jack_rts_name(name); } #include "entity_t.h" // for the assertion. -int is_jack_rts_entity(ir_entity *e) { +int is_jack_rts_entity(ir_entity *e) +{ ident *name; assert(e->ld_name); @@ -401,5 +424,6 @@ int is_jack_rts_entity(ir_entity *e) { return is_jack_rts_name(name); } - #endif /* if 0 */ + +#endif