From 092289bee92b098fa9477881404d92482dfed5da Mon Sep 17 00:00:00 2001 From: Sebastian Buchwald Date: Thu, 12 Aug 2010 20:31:54 +0000 Subject: [PATCH] Using a node bucket wasn't a good idea. [r27926] --- heuristical_co.c | 5 +++-- optimal.c | 14 +++----------- optimal.h | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/heuristical_co.c b/heuristical_co.c index 3e8ed968e..f65db2cf8 100644 --- a/heuristical_co.c +++ b/heuristical_co.c @@ -85,7 +85,8 @@ static void apply_RN_co(pbqp *pbqp) assert(pbqp); - node = node_bucket_pop(&rn_bucket); + node = merged_node; + merged_node = NULL; assert(node); if (node_is_reduced(node)) @@ -152,7 +153,7 @@ static void apply_heuristic_reductions_co(pbqp *pbqp, plist_t *rpeo) #if KAPS_TIMING ir_timer_stop(t_r2); #endif - } else if (node_bucket_get_length(rn_bucket) > 0) { + } else if (merged_node != NULL) { #if KAPS_TIMING ir_timer_start(t_rn); #endif diff --git a/optimal.c b/optimal.c index 98c87ed80..0768356ba 100644 --- a/optimal.c +++ b/optimal.c @@ -48,10 +48,10 @@ pbqp_edge **edge_bucket; pbqp_edge **rm_bucket; -pbqp_node **rn_bucket; pbqp_node **node_buckets[4]; pbqp_node **reduced_bucket = NULL; -static int buckets_filled = 0; +pbqp_node *merged_node = NULL; +static int buckets_filled = 0; static void insert_into_edge_bucket(pbqp_edge *edge) { @@ -80,7 +80,6 @@ static void init_buckets(void) edge_bucket_init(&edge_bucket); edge_bucket_init(&rm_bucket); node_bucket_init(&reduced_bucket); - node_bucket_init(&rn_bucket); for (i = 0; i < 4; ++i) { node_bucket_init(&node_buckets[i]); @@ -98,7 +97,6 @@ void free_buckets(void) edge_bucket_free(&edge_bucket); edge_bucket_free(&rm_bucket); node_bucket_free(&reduced_bucket); - node_bucket_free(&rn_bucket); buckets_filled = 0; } @@ -426,9 +424,6 @@ static void merge_source_into_target(pbqp *pbqp, pbqp_edge *edge) insert_into_rm_bucket(new_edge); } - /* Reduce the remaining source node via RI. */ - apply_RI(pbqp); - #if KAPS_STATISTIC pbqp->num_r1--; #endif @@ -588,9 +583,6 @@ static void merge_target_into_source(pbqp *pbqp, pbqp_edge *edge) insert_into_rm_bucket(new_edge); } - /* Reduce the remaining source node via RI. */ - apply_RI(pbqp); - #if KAPS_STATISTIC pbqp->num_r1--; #endif @@ -629,7 +621,7 @@ void apply_RM(pbqp *pbqp, pbqp_node *node) merge_source_into_target(pbqp, edge); } - node_bucket_insert(&rn_bucket, node); + merged_node = node; } void reorder_node(pbqp_node *node) diff --git a/optimal.h b/optimal.h index 2432f8387..7f001d35b 100644 --- a/optimal.h +++ b/optimal.h @@ -32,7 +32,7 @@ extern pbqp_edge **edge_bucket; extern pbqp_node **node_buckets[4]; extern pbqp_node **reduced_bucket; -extern pbqp_node **rn_bucket; +extern pbqp_node *merged_node; void apply_edge(pbqp *pbqp); -- 2.20.1