From 048dcb3bf103fcbacc6b12905db84d319f2d6128 Mon Sep 17 00:00:00 2001 From: Brian Taylor Date: Sun, 31 Mar 2024 17:03:58 -0700 Subject: [PATCH] Go back to before previous merge. --- src/frontend/logicexp.c | 28 ++++++++-------------------- src/frontend/udevices.c | 6 +----- src/include/ngspice/logicexp.h | 2 +- 3 files changed, 10 insertions(+), 26 deletions(-) diff --git a/src/frontend/logicexp.c b/src/frontend/logicexp.c index a568bd076..3d3df6ea9 100644 --- a/src/frontend/logicexp.c +++ b/src/frontend/logicexp.c @@ -569,22 +569,11 @@ static void move_inputs(struct gate_data *curr, struct gate_data *prev) prev->finished = TRUE; } -static void scan_gates(DSTRING *lhs, int optimize) +static void scan_gates(DSTRING *lhs) { struct gate_data *current = NULL, *previous = NULL, *last_curr = NULL; struct gate_data *prev = NULL; - if (optimize < 1) { - current = last_gate; - if (ds_get_length(lhs) > 0) { - assert(current->finished == FALSE); - tfree(current->outp); - current->outp = TMALLOC(char, ds_get_length(lhs) + 1); - strcpy(current->outp, ds_get_buf(lhs)); - } - return; - } - current = first_gate; while (current) { int is_gate = (current->type == '&' @@ -977,7 +966,7 @@ err_return: /* Start of logicexp parser */ static void aerror(char *s); static BOOL amatch(int t); -static BOOL bparse(char *line, BOOL new_lexer, int optimize); +static BOOL bparse(char *line, BOOL new_lexer); static int lookahead = 0; static int number_of_instances = 0; @@ -1072,7 +1061,7 @@ static BOOL amatch(int t) return TRUE; } -static BOOL bstmt_postfix(int optimize) +static BOOL bstmt_postfix(void) { /* A stmt is: output_name_id = '{' expr '}' */ DS_CREATE(lhs, 32); @@ -1124,7 +1113,7 @@ static BOOL bstmt_postfix(int optimize) retval = FALSE; goto bail_out; } - scan_gates(&lhs, optimize); + scan_gates(&lhs); gen_scanned_gates(first_gate); lookahead = lex_scan(); while (lookahead != '}') { @@ -1167,7 +1156,7 @@ static char *get_logicexp_tmodel_delays( return ds_get_buf(mname); } -static BOOL bparse(char *line, BOOL new_lexer, int optimize) +static BOOL bparse(char *line, BOOL new_lexer) { BOOL ret_val = TRUE; DS_CREATE(stmt, LEX_BUF_SZ); @@ -1182,7 +1171,7 @@ static BOOL bparse(char *line, BOOL new_lexer, int optimize) while (lookahead != '\0') { ds_clear(&stmt); ds_cat_str(&stmt, parse_lexer->lexer_buf); - if (!bstmt_postfix(optimize)) { + if (!bstmt_postfix()) { cleanup_parser(); ret_val= FALSE; break; @@ -1244,9 +1233,8 @@ static BOOL expect_token( return TRUE; } -BOOL f_logicexp(char *line, int optimize) +BOOL f_logicexp(char *line) { - /* If optimize > 0 then perform optimizations in scan_gates */ int t, num_ins = 0, num_outs = 0, i; char *endp; BOOL ret_val = TRUE; @@ -1331,7 +1319,7 @@ BOOL f_logicexp(char *line, int optimize) } (void) add_sym_tab_entry(parse_lexer->lexer_buf, SYM_TMODEL, &parse_lexer->lexer_sym_tab); - ret_val = bparse(line, FALSE, optimize); + ret_val = bparse(line, FALSE); current_lexer = NULL; if (!ret_val) { diff --git a/src/frontend/udevices.c b/src/frontend/udevices.c index b7437f45e..dcbe5d054 100644 --- a/src/frontend/udevices.c +++ b/src/frontend/udevices.c @@ -280,7 +280,6 @@ static int ps_udevice_msgs = 0; // Controls the verbosity of U* warnings If ps_udevice_exit is non-zero then exit when u_process_instance fails */ static int ps_udevice_exit = 0; -static int ps_scan_gates_optimize = 1; // Allow optimization in scan_gates static int ps_tpz_delays = 0; // For tristate delays static int ps_with_inverters = 0; // For ff/latch control inputs static int ps_with_tri_inverters = 0; // For inv3/inv3a data inputs @@ -966,9 +965,6 @@ void initialize_udevice(char *subckt_line) if (!cp_getvar("ps_udevice_exit", CP_NUM, &ps_udevice_exit, 0)) { ps_udevice_exit = 0; } - if (!cp_getvar("ps_scan_gates_optimize", CP_NUM, &ps_scan_gates_optimize, 0)) { - ps_scan_gates_optimize = 1; - } /* If non-zero use inverters with ff/latch control inputs */ if (!cp_getvar("ps_with_inverters", CP_NUM, &ps_with_inverters, 0)) { ps_with_inverters = 0; @@ -4322,7 +4318,7 @@ BOOL u_process_instance(char *nline) if (ps_ports_and_pins & 4) { printf("TRANS_IN %s\n", nline); } - behav_ret = f_logicexp(nline, ps_scan_gates_optimize); + behav_ret = f_logicexp(nline); if (!behav_ret && current_subckt) { fprintf(stderr, "ERROR in %s\n", current_subckt); } diff --git a/src/include/ngspice/logicexp.h b/src/include/ngspice/logicexp.h index 8c77e9a09..556835a43 100644 --- a/src/include/ngspice/logicexp.h +++ b/src/include/ngspice/logicexp.h @@ -3,7 +3,7 @@ #ifndef INCLUDED_LOGICEXP_H #define INCLUDED_LOGICEXP_H -BOOL f_logicexp(char *line, int optimize); +BOOL f_logicexp(char *line); BOOL f_pindly(char *line); #endif