mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
removed front-end-params
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
288a96610f
commit
ffb7e26c75
91 changed files with 264 additions and 412 deletions
|
@ -25,7 +25,7 @@ Revision History:
|
|||
#undef min
|
||||
#undef max
|
||||
#endif
|
||||
#include"front_end_params.h"
|
||||
#include"smt_params.h"
|
||||
#include"datalog_parser.h"
|
||||
#include"arith_decl_plugin.h"
|
||||
#include"dl_compiler.h"
|
||||
|
@ -43,7 +43,7 @@ static datalog::context * g_ctx = 0;
|
|||
static datalog::rule_set * g_orig_rules;
|
||||
static datalog::instruction_block * g_code;
|
||||
static datalog::execution_context * g_ectx;
|
||||
static front_end_params * g_params;
|
||||
static smt_params * g_params;
|
||||
|
||||
datalog_params::datalog_params():
|
||||
m_default_table("sparse"),
|
||||
|
@ -61,7 +61,7 @@ static void display_statistics(
|
|||
datalog::rule_set& orig_rules,
|
||||
datalog::instruction_block& code,
|
||||
datalog::execution_context& ex_ctx,
|
||||
front_end_params& params,
|
||||
smt_params& params,
|
||||
bool verbose
|
||||
)
|
||||
{
|
||||
|
@ -125,8 +125,10 @@ static void on_ctrl_c(int) {
|
|||
}
|
||||
|
||||
|
||||
unsigned read_datalog(char const * file, datalog_params const& dl_params, front_end_params & front_end_params) {
|
||||
unsigned read_datalog(char const * file) {
|
||||
IF_VERBOSE(1, verbose_stream() << "Z3 Datalog Engine\n";);
|
||||
datalog_params dl_params;
|
||||
smt_params s_params;
|
||||
ast_manager m;
|
||||
g_overall_time.start();
|
||||
register_on_timeout_proc(on_timeout);
|
||||
|
@ -136,11 +138,7 @@ unsigned read_datalog(char const * file, datalog_params const& dl_params, front_
|
|||
params.set_sym("default_table", dl_params.m_default_table);
|
||||
params.set_bool("default_table_checked", dl_params.m_default_table_checked);
|
||||
|
||||
datalog::context ctx(m, front_end_params, params);
|
||||
size_t watermark = front_end_params.m_memory_high_watermark;
|
||||
if (watermark == 0) {
|
||||
memory::set_high_watermark(static_cast<size_t>(UINT_MAX));
|
||||
}
|
||||
datalog::context ctx(m, s_params, params);
|
||||
datalog::relation_manager & rmgr = ctx.get_rmanager();
|
||||
datalog::relation_plugin & inner_plg = *rmgr.get_relation_plugin(symbol("tr_hashtable"));
|
||||
SASSERT(&inner_plg);
|
||||
|
@ -190,7 +188,7 @@ unsigned read_datalog(char const * file, datalog_params const& dl_params, front_
|
|||
g_orig_rules = &original_rules;
|
||||
g_code = &rules_code;
|
||||
g_ectx = &ex_ctx;
|
||||
g_params = &front_end_params;
|
||||
g_params = &s_params;
|
||||
|
||||
try {
|
||||
g_piece_timer.reset();
|
||||
|
@ -262,7 +260,7 @@ unsigned read_datalog(char const * file, datalog_params const& dl_params, front_
|
|||
original_rules,
|
||||
rules_code,
|
||||
ex_ctx,
|
||||
front_end_params,
|
||||
s_params,
|
||||
false);
|
||||
|
||||
}
|
||||
|
@ -274,7 +272,7 @@ unsigned read_datalog(char const * file, datalog_params const& dl_params, front_
|
|||
original_rules,
|
||||
rules_code,
|
||||
ex_ctx,
|
||||
front_end_params,
|
||||
s_params,
|
||||
true);
|
||||
return ERR_MEMOUT;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ struct datalog_params {
|
|||
datalog_params();
|
||||
};
|
||||
|
||||
unsigned read_datalog(char const * file, datalog_params const& dl_params, front_end_params & front_end_params);
|
||||
unsigned read_datalog(char const * file);
|
||||
|
||||
|
||||
#endif /* _DATALOG_FRONTEND_H_ */
|
||||
|
|
|
@ -41,7 +41,6 @@ std::string g_aux_input_file;
|
|||
char const * g_input_file = 0;
|
||||
bool g_standard_input = false;
|
||||
input_kind g_input_kind = IN_UNSPECIFIED;
|
||||
front_end_params * g_front_end_params = 0;
|
||||
bool g_display_statistics = false;
|
||||
bool g_display_istatistics = false;
|
||||
|
||||
|
@ -98,36 +97,7 @@ void display_usage() {
|
|||
std::cout << " " << OPT << "dbg:tag enable assertions tagged with <tag>.\n";
|
||||
#endif
|
||||
}
|
||||
|
||||
class extra_params : public datalog_params {
|
||||
bool & m_statistics;
|
||||
public:
|
||||
extra_params():
|
||||
m_statistics(g_display_statistics) {
|
||||
}
|
||||
|
||||
virtual ~extra_params() {}
|
||||
};
|
||||
|
||||
extra_params* g_extra_params = 0;
|
||||
bool g_params_initialized = false;
|
||||
|
||||
void init_params() {
|
||||
if (!g_params_initialized) {
|
||||
z3_bound_num_procs();
|
||||
g_front_end_params = new front_end_params();
|
||||
g_extra_params = new extra_params();
|
||||
g_params_initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
void del_params() {
|
||||
delete g_extra_params;
|
||||
delete g_front_end_params;
|
||||
g_extra_params = 0;
|
||||
g_front_end_params = 0;
|
||||
}
|
||||
|
||||
|
||||
void parse_cmd_line_args(int argc, char ** argv) {
|
||||
int i = 1;
|
||||
char * eq_pos = 0;
|
||||
|
@ -200,18 +170,9 @@ void parse_cmd_line_args(int argc, char ** argv) {
|
|||
long lvl = strtol(opt_arg, 0, 10);
|
||||
set_verbosity_level(lvl);
|
||||
}
|
||||
else if (strcmp(opt_name, "vldt") == 0) {
|
||||
g_front_end_params->m_model_validate = true;
|
||||
}
|
||||
else if (strcmp(opt_name, "file") == 0) {
|
||||
g_input_file = opt_arg;
|
||||
}
|
||||
else if (strcmp(opt_name, "r") == 0) {
|
||||
if (!opt_arg) {
|
||||
error("optional argument (/r:level) is missing.");
|
||||
}
|
||||
g_front_end_params->m_relevancy_lvl = strtol(opt_arg, 0, 10);
|
||||
}
|
||||
else if (strcmp(opt_name, "T") == 0) {
|
||||
if (!opt_arg)
|
||||
error("option argument (/T:timeout) is missing.");
|
||||
|
@ -221,8 +182,7 @@ void parse_cmd_line_args(int argc, char ** argv) {
|
|||
else if (strcmp(opt_name, "t") == 0) {
|
||||
if (!opt_arg)
|
||||
error("option argument (/t:timeout) is missing.");
|
||||
long tm = strtol(opt_arg, 0, 10);
|
||||
g_front_end_params->m_soft_timeout = tm*1000;
|
||||
gparams::set("timeout", opt_arg);
|
||||
}
|
||||
else if (strcmp(opt_name, "nw") == 0) {
|
||||
enable_warning_messages(false);
|
||||
|
@ -248,7 +208,7 @@ void parse_cmd_line_args(int argc, char ** argv) {
|
|||
else if (strcmp(opt_name, "memory") == 0) {
|
||||
if (!opt_arg)
|
||||
error("option argument (/memory:val) is missing.");
|
||||
g_front_end_params->m_memory_high_watermark = strtoul(opt_arg, 0, 10);
|
||||
gparams::set("memory_max_size", opt_arg);
|
||||
}
|
||||
else {
|
||||
std::cerr << "Error: invalid command line option: " << arg << "\n";
|
||||
|
@ -288,27 +248,10 @@ char const * get_extension(char const * file_name) {
|
|||
}
|
||||
}
|
||||
|
||||
class global_state_initialiser {
|
||||
public:
|
||||
global_state_initialiser() {
|
||||
memory::initialize(0);
|
||||
init_params();
|
||||
}
|
||||
|
||||
void reset() {
|
||||
del_params();
|
||||
memory::finalize();
|
||||
}
|
||||
|
||||
~global_state_initialiser() {
|
||||
reset();
|
||||
}
|
||||
};
|
||||
|
||||
int main(int argc, char ** argv) {
|
||||
try{
|
||||
unsigned return_value = 0;
|
||||
global_state_initialiser global_state;
|
||||
memory::initialize(0);
|
||||
memory::exit_when_out_of_memory(true, "ERROR: out of memory");
|
||||
parse_cmd_line_args(argc, argv);
|
||||
env_params::updt_params();
|
||||
|
@ -353,7 +296,7 @@ int main(int argc, char ** argv) {
|
|||
return_value = read_dimacs(g_input_file);
|
||||
break;
|
||||
case IN_DATALOG:
|
||||
read_datalog(g_input_file, *g_extra_params, *g_front_end_params);
|
||||
read_datalog(g_input_file);
|
||||
break;
|
||||
case IN_Z3_LOG:
|
||||
replay_z3_log(g_input_file);
|
||||
|
@ -361,7 +304,6 @@ int main(int argc, char ** argv) {
|
|||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
global_state.reset();
|
||||
#ifdef _WINDOWS
|
||||
_CrtDumpMemoryLeaks();
|
||||
#endif
|
||||
|
|
|
@ -19,8 +19,6 @@ Revision History:
|
|||
#ifndef _SMTLIB_FRONTEND_H_
|
||||
#define _SMTLIB_FRONTEND_H_
|
||||
|
||||
#include"front_end_params.h"
|
||||
|
||||
unsigned read_smtlib_file(char const * benchmark_file);
|
||||
unsigned read_smtlib2_commands(char const * command_file);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue