- (void) verbosity;
- (void) max_disp;
- (void) disp;
- (void) comma;
-#if 0 /* Outputs loop depth of all occurrences. */
- int n_acc = get_entity_n_accesses(ent);
- int max_L_freq = -1;
- int max_S_freq = -1;
- int max_LA_freq = -1;
- int max_SA_freq = -1;
- int *L_freq;
- int *S_freq;
- int *LA_freq;
- int *SA_freq;
- int i, max_depth = 0;
-
- /* Find maximal depth */
- for (i = 0; i < n_acc; ++i) {
- ir_node *acc = get_entity_access(ent, i);
- int depth = get_weighted_loop_depth(acc);
- max_depth = (depth > max_depth) ? depth : max_depth ;
- }
-
- L_freq = XMALLOCNZ(int, 4 * (max_depth + 1));
-
- S_freq = L_freq + 1*max_depth;
- LA_freq = L_freq + 2*max_depth;
- SA_freq = L_freq + 3*max_depth;
-
- for (i = 0; i < n_acc; ++i) {
- ir_node *acc = get_entity_access(ent, i);
- int depth = get_weighted_loop_depth(acc);
- assert(depth <= max_depth);
- if (is_Load(acc) || is_Call(acc)) {
- L_freq[depth]++;
- max_L_freq = (depth > max_L_freq) ? depth : max_L_freq;
- if (addr_is_alloc(acc)) {
- LA_freq[depth]++;
- max_LA_freq = (depth > max_LA_freq) ? depth : max_LA_freq;
- }
- if (get_entity_allocation(ent) == allocation_static) {
- disp[depth]++;
- *max_disp = (depth > *max_disp) ? depth : *max_disp;
- }
- } else if (is_Store(acc)) {
- S_freq[depth]++;
- max_S_freq = (depth > max_S_freq) ? depth : max_S_freq;
- if (addr_is_alloc(acc)) {
- SA_freq[depth]++;
- max_SA_freq = (depth > max_SA_freq) ? depth : max_SA_freq;
- }
- if (get_entity_allocation(ent) == allocation_static) {
- assert(0);
- }
- } else {
- assert(0);
- }
- }
-
- if (get_entity_allocation(ent) != allocation_static) {
-
- fprintf(F, "%s_%s", get_type_name(get_entity_owner(ent)), get_entity_name(ent));
-
- if (max_L_freq >= 0) {
- fprintf(F, "%s Load", comma);
- for (i = 0; i <= max_L_freq; ++i) {
- fprintf(F, "%s %d", comma, L_freq[i]);
- }
- }
- if (max_S_freq >= 0) {
- if (max_L_freq >= 0) fprintf(F, "\n%s_%s", get_type_name(get_entity_owner(ent)), get_entity_name(ent));
- fprintf(F, "%s Store", comma);
- for (i = 0; i <= max_S_freq; ++i) {
- fprintf(F, "%s %d", comma, S_freq[i]);
- }
- }
- fprintf(F, "\n");
- }
- free(L_freq);
-#endif
-
- if (get_entity_allocation(ent) != allocation_static) {
- if (is_Method_type(get_entity_type(ent))) return;
-
- /* Output the entity name. */
- fprintf(F, "%s%-40s ", prefix, get_entity_ld_name(ent));
-
-#ifdef INTERPROCEDURAL_VIEW
- if (get_trouts_state() != outs_none) {
- if (is_Method_type(get_entity_type(ent))) {
- //fprintf(F, "%s Estimated #Calls: %lf\n", prefix, get_entity_estimated_n_calls(ent));
- //fprintf(F, "%s Estimated #dynCalls: %lf\n", prefix, get_entity_estimated_n_calls(ent));
- } else {
- fprintf(F, "%6.2lf ", get_entity_estimated_n_loads(ent));
- fprintf(F, "%6.2lf", get_entity_estimated_n_stores(ent));
- }
- }
-#endif
-
- fprintf(F, "\n");
- }
-}
-
-#ifdef INTERPROCEDURAL_VIEW
-/* A fast hack to dump a CSV-file. */
-void dump_typecsv_to_file(FILE *F, ir_type *tp, dump_verbosity verbosity, const char *comma) {
- int i;
- char buf[1024 + 10];
- (void) comma;
-
- if (!is_Class_type(tp)) return; // we also want array types. Stupid, these are classes in java.
-
- if (verbosity & dump_verbosity_accessStats) {
-
-#if 0
- /* Outputs loop depth of all occurrences. */
- int max_freq = -1;
- int max_disp = -1;
- int *freq, *disp; /* Accumulated accesses to static members: dispatch table. */
- int n_all = get_type_n_allocs(tp);
- int max_depth = 0;
- /* Find maximal depth */
- for (i = 0; i < n_all; ++i) {
- ir_node *all = get_type_alloc(tp, i);
- int depth = get_weighted_loop_depth(all);
- max_depth = (depth > max_depth) ? depth : max_depth ;
- }
-
- freq = XMALLOCNZ(int, 2 * (max_depth + 1));
-
- disp = freq + max_depth;
-
- for (i = 0; i < n_all; ++i) {
- ir_node *all = get_type_alloc(tp, i);
- int depth = get_weighted_loop_depth(all);
- assert(depth <= max_depth);
- freq[depth]++;
- max_freq = (depth > max_freq) ? depth : max_freq;
- assert(is_Alloc(all));
- }
-
- fprintf(F, "%s ", get_type_name(tp));
- fprintf(F, "%s Alloc ", comma);
-
- if (max_freq >= 0) {
- for (i = 0; i <= max_freq; ++i) {
- fprintf(F, "%s %d", comma, freq[i]);
- }
- }
- fprintf(F, "\n");
-
- for (i = 0; i < get_class_n_members(tp); ++i) {
- ir_entity *mem = get_class_member(tp, i);
- if (((verbosity & dump_verbosity_methods) && is_Method_type(get_entity_type(mem))) ||
- ((verbosity & dump_verbosity_fields) && !is_Method_type(get_entity_type(mem))) ) {
- if (!((verbosity & dump_verbosity_nostatic) && (get_entity_allocation(mem) == allocation_static))) {
- dump_entitycsv_to_file_prefix(F, mem, " ", verbosity, &max_disp, disp, comma);
- }
- }
- }
-
- if (max_disp >= 0) {
- fprintf(F, "%s__disp_tab%s Load", get_type_name(tp), comma);
- for (i = 0; i <= max_disp; ++i) {
- fprintf(F, "%s %d", comma, disp[i]);
- }
- fprintf(F, "\n");
- }
-
- /* free allocated space */
- free(freq);
-#endif
-
-#define DISP_TAB_SUFFIX "__disp_tab"
- if (get_trouts_state() != outs_none) {
- assert(strlen(get_type_name(tp)) < 1024);
- fprintf(F, "%-44s %6.2lf -1.00\n", get_type_name(tp), get_type_estimated_n_instances(tp));
- sprintf(buf, "%s%s", get_type_name(tp), DISP_TAB_SUFFIX);
- fprintf(F, "%-44s %6.2lf 0.00\n", buf, get_class_estimated_n_dyncalls(tp));
- }
-
- for (i = 0; i < get_class_n_members(tp); ++i) {
- ir_entity *mem = get_class_member(tp, i);
- if (((verbosity & dump_verbosity_methods) && is_Method_type(get_entity_type(mem))) ||
- ((verbosity & dump_verbosity_fields) && !is_Method_type(get_entity_type(mem))) ) {
- if (!((verbosity & dump_verbosity_nostatic) && (get_entity_allocation(mem) == allocation_static))) {
- dump_entitycsv_to_file_prefix(F, mem, " ", verbosity, NULL, 0, 0);
- }
- }
- }
- }