Skip to content

Commit 04ec167

Browse files
committed
Added 3LCache, LRB, GLCache, and PRIV into jump table
1 parent 553b5f2 commit 04ec167

File tree

1 file changed

+65
-76
lines changed

1 file changed

+65
-76
lines changed

libCacheSim/bin/cachesim/cache_init.h

Lines changed: 65 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -34,54 +34,72 @@ static inline cache_t *create_cache(const char *trace_path,
3434
} eviction_algo_entry_t;
3535

3636
static const eviction_algo_entry_t simple_algos[] = {
37-
{"lru", LRU_init},
38-
{"fifo", FIFO_init},
39-
{"arc", ARC_init},
40-
{"arcv0", ARCv0_init},
41-
{"lhd", LHD_init},
42-
{"random", Random_init},
43-
{"randomTwo", RandomTwo_init},
44-
{"lfu", LFU_init},
45-
{"gdsf", GDSF_init},
46-
{"lfuda", LFUDA_init},
47-
{"twoq", TwoQ_init},
48-
{"2q", TwoQ_init},
49-
{"slru", SLRU_init},
50-
{"slruv0", SLRUv0_init},
51-
{"lecar", LeCaR_init},
52-
{"lecarv0", LeCaRv0_init},
53-
{"RandomLRU", RandomLRU_init},
54-
{"cacheus", Cacheus_init},
55-
{"size", Size_init},
56-
{"lfucpp", LFUCpp_init},
57-
{"wtinyLFU", WTinyLFU_init},
58-
{"nop", nop_init},
59-
{"fifo-reinsertion", Clock_init},
60-
{"clock", Clock_init},
61-
{"second-chance", Clock_init},
62-
{"clockpro", ClockPro_init},
63-
{"lirs", LIRS_init},
64-
{"fifomerge", FIFO_Merge_init},
65-
{"fifo-merge", FIFO_Merge_init},
66-
{"flashProb", flashProb_init},
67-
{"sfifo", SFIFO_init},
68-
{"sfifov0", SFIFOv0_init},
69-
{"lru-prob", LRU_Prob_init},
70-
{"fifo-belady", FIFO_Belady_init},
71-
{"lru-belady", LRU_Belady_init},
72-
{"sieve-belady", Sieve_Belady_init},
73-
{"s3lru", S3LRU_init},
74-
{"s3fifo", S3FIFO_init},
75-
{"s3-fifo", S3FIFO_init},
76-
{"s3fifov0", S3FIFOv0_init},
77-
{"s3-fifov0", S3FIFOv0_init},
78-
{"s3fifod", S3FIFOd_init},
79-
{"qdlp", QDLP_init},
80-
{"CAR", CAR_init},
81-
{"sieve", Sieve_init},
82-
};
37+
{"lru", LRU_init},
38+
{"fifo", FIFO_init},
39+
{"arc", ARC_init},
40+
{"arcv0", ARCv0_init},
41+
{"lhd", LHD_init},
42+
{"random", Random_init},
43+
{"randomTwo", RandomTwo_init},
44+
{"lfu", LFU_init},
45+
{"gdsf", GDSF_init},
46+
{"lfuda", LFUDA_init},
47+
{"twoq", TwoQ_init},
48+
{"2q", TwoQ_init},
49+
{"slru", SLRU_init},
50+
{"slruv0", SLRUv0_init},
51+
{"lecar", LeCaR_init},
52+
{"lecarv0", LeCaRv0_init},
53+
{"RandomLRU", RandomLRU_init},
54+
{"cacheus", Cacheus_init},
55+
{"size", Size_init},
56+
{"lfucpp", LFUCpp_init},
57+
{"wtinyLFU", WTinyLFU_init},
58+
{"nop", nop_init},
59+
{"fifo-reinsertion", Clock_init},
60+
{"clock", Clock_init},
61+
{"second-chance", Clock_init},
62+
{"clockpro", ClockPro_init},
63+
{"lirs", LIRS_init},
64+
{"fifomerge", FIFO_Merge_init},
65+
{"fifo-merge", FIFO_Merge_init},
66+
{"flashProb", flashProb_init},
67+
{"sfifo", SFIFO_init},
68+
{"sfifov0", SFIFOv0_init},
69+
{"lru-prob", LRU_Prob_init},
70+
{"fifo-belady", FIFO_Belady_init},
71+
{"lru-belady", LRU_Belady_init},
72+
{"sieve-belady", Sieve_Belady_init},
73+
{"s3lru", S3LRU_init},
74+
{"s3fifo", S3FIFO_init},
75+
{"s3-fifo", S3FIFO_init},
76+
{"s3fifov0", S3FIFOv0_init},
77+
{"s3-fifov0", S3FIFOv0_init},
78+
{"s3fifod", S3FIFOd_init},
79+
{"qdlp", QDLP_init},
80+
{"CAR", CAR_init},
81+
#ifdef ENABLE_3L_CACHE
82+
{"3LCache", ThreeLCache_init},
83+
#endif
84+
#ifdef ENABLE_GLCACHE
85+
{"GLCache", GLCache_init},
86+
{"gl-cache", GLCache_init},
87+
#endif
88+
#ifdef ENABLE_LRB
89+
{"lrb", LRB_init},
90+
#endif
91+
#ifdef INCLUDE_PRIV
92+
{"mclock", MClock_init},
93+
{"lp-sfifo", LP_SFIFO_init},
94+
{"lp-arc", LP_ARC_init},
95+
{"lp-twoq", LP_TwoQ_init},
96+
{"qdlpv0", QDLPv0_init},
97+
{"s3fifodv2", S3FIFOdv2_init},
98+
{"myMQv1", myMQv1_init}
99+
#endif
100+
};
83101

84-
cache_t *(*init_func)(common_cache_params_t, const char *) = NULL;
102+
cache_t * (*init_func)(common_cache_params_t, const char *) = NULL;
85103
for (size_t i = 0; i < sizeof(simple_algos) / sizeof(simple_algos[0]); ++i) {
86104
if (strcasecmp(eviction_algo, simple_algos[i].name) == 0) {
87105
init_func = simple_algos[i].init_func;
@@ -130,35 +148,6 @@ static inline cache_t *create_cache(const char *trace_path,
130148
}
131149
cc_params.hashpower = MAX(cc_params.hashpower - 8, 16);
132150
cache = BeladySize_init(cc_params, eviction_params);
133-
#ifdef ENABLE_3L_CACHE
134-
} else if (strcasecmp(eviction_algo, "3LCache") == 0) {
135-
cache = ThreeLCache_init(cc_params, eviction_params);
136-
#endif
137-
#ifdef ENABLE_GLCACHE
138-
} else if (strcasecmp(eviction_algo, "GLCache") == 0 ||
139-
strcasecmp(eviction_algo, "gl-cache") == 0) {
140-
cache = GLCache_init(cc_params, eviction_params);
141-
#endif
142-
#ifdef ENABLE_LRB
143-
} else if (strcasecmp(eviction_algo, "lrb") == 0) {
144-
cache = LRB_init(cc_params, eviction_params);
145-
#endif
146-
#ifdef INCLUDE_PRIV
147-
} else if (strcasecmp(eviction_algo, "mclock") == 0) {
148-
cache = MClock_init(cc_params, eviction_params);
149-
} else if (strcasecmp(eviction_algo, "lp-sfifo") == 0) {
150-
cache = LP_SFIFO_init(cc_params, eviction_params);
151-
} else if (strcasecmp(eviction_algo, "lp-arc") == 0) {
152-
cache = LP_ARC_init(cc_params, eviction_params);
153-
} else if (strcasecmp(eviction_algo, "lp-twoq") == 0) {
154-
cache = LP_TwoQ_init(cc_params, eviction_params);
155-
} else if (strcasecmp(eviction_algo, "qdlpv0") == 0) {
156-
cache = QDLPv0_init(cc_params, eviction_params);
157-
} else if (strcasecmp(eviction_algo, "s3fifodv2") == 0) {
158-
cache = S3FIFOdv2_init(cc_params, eviction_params);
159-
} else if (strcasecmp(eviction_algo, "myMQv1") == 0) {
160-
cache = myMQv1_init(cc_params, eviction_params);
161-
#endif
162151
} else {
163152
ERROR("do not support algorithm %s\n", eviction_algo);
164153
abort();

0 commit comments

Comments
 (0)