static temp_expr_table_p new_temp_expr_table (var_map map) { temp_expr_table_p t; unsigned x; t = XNEW (struct temp_expr_table_d); t->map = map; t->partition_dependencies = XCNEWVEC (bitmap, num_ssa_names + 1); t->expr_decl_uids = XCNEWVEC (bitmap, num_ssa_names + 1); t->kill_list = XCNEWVEC (bitmap, num_var_partitions (map) + 1); t->partition_in_use = BITMAP_ALLOC (NULL); t->virtual_partition = num_var_partitions (map); t->new_replaceable_dependencies = BITMAP_ALLOC (NULL); t->replaceable_expressions = NULL; t->num_in_part = XCNEWVEC (int, num_var_partitions (map)); for (x = 1; x < num_ssa_names; x++) { int p; tree name = ssa_name (x); if (!name) continue; p = var_to_partition (map, name); if (p != NO_PARTITION) t->num_in_part[p]++; } return t; }
static gimple * free_temp_expr_table (temp_expr_table_p t) { gimple *ret = NULL; #ifdef ENABLE_CHECKING unsigned x; for (x = 0; x <= num_var_partitions (t->map); x++) gcc_assert (!t->kill_list[x]); for (x = 0; x < num_ssa_names + 1; x++) { gcc_assert (t->expr_decl_uids[x] == NULL); gcc_assert (t->partition_dependencies[x] == NULL); } #endif BITMAP_FREE (t->partition_in_use); BITMAP_FREE (t->new_replaceable_dependencies); free (t->expr_decl_uids); free (t->kill_list); free (t->partition_dependencies); free (t->num_in_part); if (t->replaceable_expressions) ret = t->replaceable_expressions; free (t); return ret; }
static bitmap_obstack ter_bitmap_obstack; extern void debug_ter (FILE *, temp_expr_table *); /* Create a new TER table for MAP. */ static temp_expr_table * new_temp_expr_table (var_map map) { temp_expr_table *t = XNEW (struct temp_expr_table); t->map = map; t->partition_dependencies = XCNEWVEC (bitmap, num_ssa_names + 1); t->expr_decl_uids = XCNEWVEC (bitmap, num_ssa_names + 1); t->kill_list = XCNEWVEC (bitmap, num_var_partitions (map) + 1); t->partition_in_use = BITMAP_ALLOC (&ter_bitmap_obstack); t->virtual_partition = num_var_partitions (map); t->new_replaceable_dependencies = BITMAP_ALLOC (&ter_bitmap_obstack); t->replaceable_expressions = NULL; t->num_in_part = XCNEWVEC (int, num_var_partitions (map)); unsigned x; tree name; FOR_EACH_SSA_NAME (x, name, cfun) { int p;