From e3c8eb86d193160035cb64e7284e2183cd973792 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Tue, 18 Jun 2002 16:18:23 +0000 Subject: [PATCH] rtl.def (DEFINE_AUTOMATON): Add description of new options `time' and `v'. 2002-06-18 Vladimir Makarov * rtl.def (DEFINE_AUTOMATON): Add description of new options `time' and `v'. Fix incorrect description of option `w'. * doc/md.texi: Ditto. * genautomata.c (TIME_OPTION, V_OPTION): New macros. (gen_automata_option): Process the new options. (transform_2, transform_3): Initialize some variables. (initiate_automaton_gen): Use the new macros. From-SVN: r54748 --- gcc/ChangeLog | 12 ++++++++++++ gcc/doc/md.texi | 13 +++++++++++-- gcc/genautomata.c | 34 +++++++++++++++++++++------------- gcc/rtl.def | 11 +++++++++-- 4 files changed, 53 insertions(+), 17 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf4718fdebe..ed371f75171 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2002-06-18 Vladimir Makarov + + * rtl.def (DEFINE_AUTOMATON): Add description of new options + `time' and `v'. Fix incorrect description of option `w'. + + * doc/md.texi: Ditto. + + * genautomata.c (TIME_OPTION, V_OPTION): New macros. + (gen_automata_option): Process the new options. + (transform_2, transform_3): Initialize some variables. + (initiate_automaton_gen): Use the new macros. + 2002-06-18 Richard Sandiford * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare. diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 24fab78d868..a346a2b1972 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -5596,8 +5596,17 @@ only worth to do when we are going to query CPU functional unit reservations in an automaton state. @item -@dfn{w} means a generation of the file describing the result -automaton. The file can be used to verify the description. +@dfn{time} means printing additional time statistics about +generation of automata. + +@item +@dfn{v} means a generation of the file describing the result automata. +The file has suffix @samp{.dfa} and can be used for the description +verification and debugging. + +@item +@dfn{w} means a generation of warning instead of error for +non-critical errors. @item @dfn{ndfa} makes nondeterministic finite state automata. This affects diff --git a/gcc/genautomata.c b/gcc/genautomata.c index f2235f368ff..d32621a03a8 100644 --- a/gcc/genautomata.c +++ b/gcc/genautomata.c @@ -638,6 +638,10 @@ static struct obstack irp; #define NO_MINIMIZATION_OPTION "-no-minimization" +#define TIME_OPTION "-time" + +#define V_OPTION "-v" + #define W_OPTION "-w" #define NDFA_OPTION "-ndfa" @@ -1639,6 +1643,10 @@ gen_automata_option (def) { if (strcmp ((char *) XSTR (def, 0), NO_MINIMIZATION_OPTION + 1) == 0) no_minimization_flag = 1; + else if (strcmp ((char *) XSTR (def, 0), TIME_OPTION + 1) == 0) + time_flag = 1; + else if (strcmp ((char *) XSTR (def, 0), V_OPTION + 1) == 0) + v_flag = 1; else if (strcmp ((char *) XSTR (def, 0), W_OPTION + 1) == 0) w_flag = 1; else if (strcmp ((char *) XSTR (def, 0), NDFA_OPTION + 1) == 0) @@ -4507,9 +4515,9 @@ transform_2 (regexp) { if (regexp->mode == rm_sequence) { - regexp_t sequence; + regexp_t sequence = NULL; regexp_t result; - int sequence_index; + int sequence_index = 0; int i, j; for (i = 0; i < regexp->regexp.sequence.regexps_num; i++) @@ -4552,9 +4560,9 @@ transform_2 (regexp) } else if (regexp->mode == rm_allof) { - regexp_t allof; + regexp_t allof = NULL; regexp_t result; - int allof_index; + int allof_index = 0; int i, j; for (i = 0; i < regexp->regexp.allof.regexps_num; i++) @@ -4596,9 +4604,9 @@ transform_2 (regexp) } else if (regexp->mode == rm_oneof) { - regexp_t oneof; + regexp_t oneof = NULL; regexp_t result; - int oneof_index; + int oneof_index = 0; int i, j; for (i = 0; i < regexp->regexp.oneof.regexps_num; i++) @@ -4652,8 +4660,8 @@ transform_3 (regexp) { if (regexp->mode == rm_sequence) { - regexp_t oneof; - int oneof_index; + regexp_t oneof = NULL; + int oneof_index = 0; regexp_t result; regexp_t sequence; int i, j; @@ -4701,10 +4709,10 @@ transform_3 (regexp) } else if (regexp->mode == rm_allof) { - regexp_t oneof, seq; - int oneof_index, max_seq_length, allof_length; + regexp_t oneof = NULL, seq; + int oneof_index = 0, max_seq_length, allof_length; regexp_t result; - regexp_t allof, allof_op; + regexp_t allof = NULL, allof_op; int i, j; for (i = 0; i < regexp->regexp.allof.regexps_num; i++) @@ -9157,9 +9165,9 @@ initiate_automaton_gen (argc, argv) for (i = 2; i < argc; i++) if (strcmp (argv [i], NO_MINIMIZATION_OPTION) == 0) no_minimization_flag = 1; - else if (strcmp (argv [i], "-time") == 0) + else if (strcmp (argv [i], TIME_OPTION) == 0) time_flag = 1; - else if (strcmp (argv [i], "-v") == 0) + else if (strcmp (argv [i], V_OPTION) == 0) v_flag = 1; else if (strcmp (argv [i], W_OPTION) == 0) w_flag = 1; diff --git a/gcc/rtl.def b/gcc/rtl.def index 270f1a842ac..1acbf983589 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -419,8 +419,15 @@ DEF_RTL_EXPR(DEFINE_AUTOMATON, "define_automaton", "s", 'x') is only worth to do when we are going to query CPU functional unit reservations in an automaton state. - o "w" which means generation of file describing the result - automaton. The file can be used for the description verification. + o "time" which means printing additional time statistics about + generation of automata. + + o "v" which means generation of file describing the result + automata. The file has suffix `.dfa' and can be used for the + description verification and debugging. + + o "w" which means generation of warning instead of error for + non-critical errors. o "ndfa" which makes nondeterministic finite state automata. */ DEF_RTL_EXPR(AUTOMATA_OPTION, "automata_option", "s", 'x') -- 2.30.2