+pset *phi_class_compute_by_phis(pset *all_phi_nodes) {
+ int i;
+ ir_node *phi;
+ pset *all_phi_classes = pset_new_ptr_default();
+
+ if (pset_count(all_phi_nodes)) {
+ ir_graph *irg = get_irn_irg(pset_first(all_phi_nodes));
+ pset_break(all_phi_nodes);
+ irg_walk_graph(irg, phi_class_destruction_walker, NULL, NULL);
+
+ for (i = 0, phi=pset_first(all_phi_nodes); phi; phi=pset_next(all_phi_nodes)) {
+ assert(is_Phi(phi) && mode_is_datab(get_irn_mode(phi)));
+ phi_class_build(phi, NULL);
+ pset_insert_ptr(all_phi_classes, _get_phi_class(phi));
+ }
+ }
+
+ return all_phi_classes;
+}
+