3
0
Fork 0
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:
Leonardo de Moura 2012-12-02 10:05:29 -08:00
parent 288a96610f
commit ffb7e26c75
91 changed files with 264 additions and 412 deletions

View file

@ -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;
}

View file

@ -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_ */

View file

@ -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

View file

@ -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);