From 7184c4aede8b1d95c33442862075b37f9eaae899 Mon Sep 17 00:00:00 2001 From: abid <chiheb.abid@gmail.com> Date: Thu, 7 May 2020 20:36:41 +0100 Subject: [PATCH] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20sylvan=5Fcommon.c=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20sylvan=5Fint.h=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20sylvan=5Fldd.c=20=09modifi=C3=A9=C2=A0:=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20sylvan=5Fldd.h=20=09modifi=C3=A9=C2=A0:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20sylvan=5Fseq.c=20=09modifi=C3=A9=C2=A0:=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20sylvan=5Fseq.h=20=09modifi=C3=A9=C2=A0:=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20sylvan=5Ftable.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sylvan_common.c | 1 + sylvan_int.h | 2 +- sylvan_ldd.c | 18 ++++++------------ sylvan_ldd.h | 3 +-- sylvan_seq.c | 1 - sylvan_seq.h | 1 + sylvan_table.c | 1 + 7 files changed, 11 insertions(+), 16 deletions(-) diff --git a/sylvan_common.c b/sylvan_common.c index 7aa7d7e..0911033 100755 --- a/sylvan_common.c +++ b/sylvan_common.c @@ -271,6 +271,7 @@ VOID_TASK_IMPL_0(sylvan_gc) */ llmsset_t nodes; +uint32_t g_created=0; static size_t table_min = 0, table_max = 0, cache_min = 0, cache_max = 0; diff --git a/sylvan_int.h b/sylvan_int.h index 008541b..39c1432 100755 --- a/sylvan_int.h +++ b/sylvan_int.h @@ -44,7 +44,7 @@ extern "C" { * Nodes table. */ extern llmsset_t nodes; - +extern uint32_t g_created; /** * Macros for all operation identifiers for the operation cache */ diff --git a/sylvan_ldd.c b/sylvan_ldd.c index efbc02a..ffbe08a 100755 --- a/sylvan_ldd.c +++ b/sylvan_ldd.c @@ -388,7 +388,10 @@ lddmc_makenode(uint32_t value, MDD ifeq, MDD ifneq) } } - if (created) sylvan_stats_count(LDD_NODES_CREATED); + if (created) { + sylvan_stats_count(LDD_NODES_CREATED); + + } else sylvan_stats_count(LDD_NODES_REUSED); return (MDD)index; @@ -3020,7 +3023,6 @@ lddmc_test_ismdd(MDD mdd) void init_gc_seq() { LACE_ME; - LOCALIZE_THREAD_LOCAL(lddmc_refs_key, lddmc_refs_internal_t); sequentiel_refs=lddmc_refs_key; } @@ -3075,9 +3077,9 @@ void llmsset_destroy_unmarked_seq( llmsset_t dbs) void sylvan_gc_seq() { - if (seq_llmsset_count_marked(nodes)>llmsset_get_size(nodes)/2) + if (g_created>llmsset_get_size(nodes)/2) { - //printf("GC active \n "); + g_created=seq_llmsset_count_marked(nodes); cache_clear(); llmsset_clear_data_seq(nodes); ldd_gc_mark_protected(); @@ -3208,13 +3210,5 @@ ldd_gc_mark_rec(MDD mdd) } } -void displayMDDTableInfo() -{ - printf("%zu of %zu buckets filled!\n", seq_llmsset_count_marked(nodes), llmsset_get_size(nodes)); -} -int isGCRequired() -{ - return (seq_llmsset_count_marked(nodes)>llmsset_get_size(nodes)/2); -} #endif diff --git a/sylvan_ldd.h b/sylvan_ldd.h index 62d76f8..4ff20e1 100755 --- a/sylvan_ldd.h +++ b/sylvan_ldd.h @@ -312,8 +312,7 @@ void __attribute__((unused)) ldd_refs_pop(long amount); -void displayMDDTableInfo(); -int isGCRequired(); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/sylvan_seq.c b/sylvan_seq.c index d10dddf..b263ea4 100755 --- a/sylvan_seq.c +++ b/sylvan_seq.c @@ -556,4 +556,3 @@ MDD ldd_divide_rec(MDD a, int level) - diff --git a/sylvan_seq.h b/sylvan_seq.h index e355166..46ed701 100755 --- a/sylvan_seq.h +++ b/sylvan_seq.h @@ -38,6 +38,7 @@ MDD ldd_divide_rec(MDD a, int level); MDD ldd_divide_internal(MDD a,int current_level,int level); void sylvan_gc_seq(); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/sylvan_table.c b/sylvan_table.c index 623dadc..299cef1 100755 --- a/sylvan_table.c +++ b/sylvan_table.c @@ -167,6 +167,7 @@ llmsset_lookup2(const llmsset_t dbs, uint64_t a, uint64_t b, int* created, const if (cas(bucket, 0, hash | cidx)) { if (custom) set_custom_bucket(dbs, cidx, custom); *created = 1; + g_created++; return cidx; } else { v = *bucket; -- GitLab