#include "iredges_t.h"
#include "phiclass.h"
#include "irphase_t.h"
+#include "irnodeset.h"
struct _phi_classes_t {
phase_t ph; /* The phase object holding the irn data */
/**
* Build the Phi classes for the set of given Phis.
*/
-static void phi_class_compute_by_phis(phi_classes_t *pc, pset *all_phi_nodes) {
- if (pset_count(all_phi_nodes)) {
- ir_node *phi;
+static void phi_class_compute_by_phis(phi_classes_t *pc, ir_nodeset_t *all_phi_nodes) {
+ if (ir_nodeset_size(all_phi_nodes) > 0) {
+ ir_nodeset_iterator_t iter;
+ ir_node *phi;
- foreach_pset(all_phi_nodes, phi) {
+ foreach_ir_nodeset(all_phi_nodes, phi, iter) {
ir_node ***irn_pc = _get_phi_class(&pc->ph, phi);
assert(is_Phi(phi) && mode_is_datab(get_irn_mode(phi)));
* Builds all Phi classes for the given set of Phis.
* @return The Phis class object for @p all_phis.
*/
-phi_classes_t *phi_class_new_from_set(ir_graph *irg, pset *all_phis, int pure_phi_classes) {
+phi_classes_t *phi_class_new_from_set(ir_graph *irg, ir_nodeset_t *all_phis, int pure_phi_classes) {
phi_classes_t *res = xmalloc(sizeof(*res));
FIRM_DBG_REGISTER(res->dbg, "ir.ana.phiclass");
#include "pset.h"
#include "irgraph.h"
#include "irnode.h"
+#include "irnodeset.h"
typedef struct _phi_classes_t phi_classes_t;
/**
* Builds all Phi classes for the given set of Phis.
* @param irg The irg, the Phis are from
- * @param all_phis A set containing all Phis nodes to build the classes for
+ * @param all_phis An ir_nodeset containing all Phis nodes to build the classes for
* @param pure_phi_classes Set to one if Phi classes should only contain Phi nodes.
* Beware: This might result in different (more) Phi classes as if not set
* @return The Phis class object for @p all_phis.
*/
-phi_classes_t *phi_class_new_from_set(ir_graph *irg, pset *all_phis, int pure_phi_classes);
+phi_classes_t *phi_class_new_from_set(ir_graph *irg, ir_nodeset_t *all_phis, int pure_phi_classes);
/**
* Free all allocated data.