+static void data_init(spilloc_env_t *env) {
+ pset *ps = pset_new_ptr_default();
+ entity *e;
+
+ foreach_pset(env->ents, e) {
+ pmap_insert(env->nodents, e, ps);
+ }
+}
+
+static void get_entity_nodes(ir_node *irn, void *env) {
+ entity *e, *ent;
+ spilloc_env_t *spi = env;
+
+ e = get_irn_entity_attr(irn);
+ //get_entity_additional_properties();
+ if (e)
+ {
+ foreach_pset(spi->ents, ent) {
+
+ if ((ent->nr == e->nr) && (ent->ld_name == e->ld_name) )
+ {
+ pset *ps = pmap_get(spi->nodents, ent);
+ if (ps && (!pset_find_ptr(pmap_get(spi->nodents, ent),irn))) {
+ pset_insert_ptr(pmap_get(spi->nodents, ent), irn);
+ }
+ }
+ }
+ }
+}
+
+pset *get_entity_irn(entity *ent, void *env) {
+ spilloc_env_t *spi = env;
+
+ pset *pirn = pmap_get(spi->nodents, ent);
+ if (pirn)
+ {
+ return pirn;
+ }
+ return NULL;
+}
+
+int entities_interfere(entity *e1, entity *e2, void *env) {
+ spilloc_env_t *spi = env;
+ ir_node *n1, *n2;
+
+ pset *pe1 = pmap_get(spi->nodents, e1);
+ pset *pe2 = pmap_get(spi->nodents, e2);
+
+ foreach_pset(pe1, n1) {
+ foreach_pset(pe2, n2) {
+ if (values_interfere(n1, n2)) return 1;
+ }
+ }
+ return 0;
+}