From ba831c86db3a30edc5cfb6edde57b6ea91cccf90 Mon Sep 17 00:00:00 2001 From: Manuel Mohr Date: Wed, 27 Jun 2012 14:01:07 +0200 Subject: [PATCH] Make spiller more deterministic. --- ir/be/bespillbelady.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ir/be/bespillbelady.c b/ir/be/bespillbelady.c index 7424d3da3..360aa58ee 100644 --- a/ir/be/bespillbelady.c +++ b/ir/be/bespillbelady.c @@ -212,9 +212,17 @@ static const loc_t *workset_contains(const workset_t *ws, const ir_node *val) static int loc_compare(const void *a, const void *b) { - const loc_t *p = (const loc_t*)a; - const loc_t *q = (const loc_t*)b; - return p->time - q->time; + const loc_t *p = ((const loc_t*) a); + const loc_t *q = ((const loc_t*) b); + const unsigned pt = p->time; + const unsigned qt = q->time; + + if (pt < qt) + return -1; + if (pt > qt) + return 1; + + return get_irn_node_nr(p->node) - get_irn_node_nr(q->node); } static void workset_sort(workset_t *workset) -- 2.20.1