projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added ir/opt include
[libfirm]
/
ir
/
be
/
becopyilp2.c
diff --git
a/ir/be/becopyilp2.c
b/ir/be/becopyilp2.c
index
1df4df3
..
6aaf689
100644
(file)
--- a/
ir/be/becopyilp2.c
+++ b/
ir/be/becopyilp2.c
@@
-40,6
+40,7
@@
#include "becopyilp_t.h"
#include "beifg_t.h"
#include "besched_t.h"
#include "becopyilp_t.h"
#include "beifg_t.h"
#include "besched_t.h"
+#include "benodesets.h"
#define DEBUG_LVL 1
#define DEBUG_LVL 1
@@
-202,7
+203,7
@@
static int compare_edge_t(const void *k1, const void *k2, size_t size) {
return ! (e1->n1 == e2->n1 && e1->n2 == e2->n2);
}
return ! (e1->n1 == e2->n1 && e1->n2 == e2->n2);
}
-#define HASH_EDGE(e) (
HASH_PTR((e)->n1) ^ HASH_PTR
((e)->n2))
+#define HASH_EDGE(e) (
nodeset_hash((e)->n1) ^ nodeset_hash
((e)->n2))
static INLINE edge_t *add_edge(set *edges, ir_node *n1, ir_node *n2, int *counter) {
edge_t new_edge;
static INLINE edge_t *add_edge(set *edges, ir_node *n1, ir_node *n2, int *counter) {
edge_t new_edge;
@@
-296,6
+297,9
@@
static void build_clique_star_cstr(ilp_env_t *ienv) {
for (e=set_first(edges); !e->n1; e=set_next(edges))
/*nothing*/ ;
for (e=set_first(edges); !e->n1; e=set_next(edges))
/*nothing*/ ;
+ /* we could be stepped out of the loop before the set iterated to the end */
+ set_break(edges);
+
pset_insert_ptr(clique, e->n1);
pset_insert_ptr(clique, e->n2);
remove_edge(edges, e->n1, e->n2, &n_edges);
pset_insert_ptr(clique, e->n1);
pset_insert_ptr(clique, e->n2);
remove_edge(edges, e->n1, e->n2, &n_edges);