1#ifndef _profile_h_INCLUDED
2#define _profile_h_INCLUDED
11typedef struct profile profile;
12typedef struct profiles profiles;
19 PROF (congruence, 2) \
22 PROF (definition, 3) \
28 PROF (extractands, 3) \
29 PROF (extractbinaries, 3) \
30 PROF (extractites, 3) \
31 PROF (extractxors, 3) \
41 PROF (preprocess, 2) \
54 PROF (substitute, 2) \
57 PROF (sweepbackbone, 3) \
58 PROF (sweepequivalences, 3) \
60 PROF (transitive, 2) \
66 PROF (vivifysort, 4) \
78#define PROF(NAME, LEVEL) profile NAME;
81 STACK (profile *) stack;
86void kissat_init_profiles (profiles *);
87void kissat_profiles_print (
struct kissat *);
88void kissat_start (
struct kissat *, profile *);
89void kissat_stop (
struct kissat *, profile *);
91void kissat_stop_search_and_start_simplifier (
struct kissat *, profile *);
92void kissat_stop_simplifier_and_resume_search (
struct kissat *, profile *);
94double kissat_time (
struct kissat *);
96#define PROFILE(NAME) (solver->profiles.NAME)
100 profile *profile = &PROFILE (NAME); \
101 if (GET_OPTION (profile) >= profile->level) \
102 kissat_start (solver, profile); \
107 profile *profile = &PROFILE (NAME); \
108 if (GET_OPTION (profile) >= profile->level) \
109 kissat_stop (solver, profile); \
112#define STOP_SEARCH_AND_START_SIMPLIFIER(NAME) \
114 if (GET_OPTION (profile) >= PROFILE (search).level) \
115 kissat_stop_search_and_start_simplifier (solver, &PROFILE (NAME)); \
118#define STOP_SIMPLIFIER_AND_RESUME_SEARCH(NAME) \
120 if (GET_OPTION (profile) >= PROFILE (search).level) \
121 kissat_stop_simplifier_and_resume_search (solver, &PROFILE (NAME)); \
133#define STOP_SEARCH_AND_START_SIMPLIFIER(...) \
136#define STOP_SIMPLIFIER_AND_RESUME_SEARCH(...) \
140#define STOP_AND_START(...) \
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.