[Fwd: two dfa problems]
Jan Hubicka
jh@suse.cz
Sun May 5 12:01:00 GMT 2002
Vlad,
I am happy to see that my intuition about the problematic splitting
was correct. However if I copy the genautomata file from mainline to
the branch tree (that does contain my experimental Athlon model), I get
internal error exactly:
> + /* The function processes given REGEXP to find units which should be
> + in the same automaton. */
> + static void
> + form_the_same_automaton_unit_lists_from_regexp (regexp)
> + regexp_t regexp;
> + {
> + int i, j, k;
> + regexp_t seq, allof, unit;
> +
> + if (regexp == NULL || regexp->mode != rm_oneof)
> + return;
> + for (i = 0; i < description->max_insn_reserv_cycles; i++)
> + the_same_automaton_lists [i] = NULL;
> + for (i = regexp->regexp.oneof.regexps_num - 1; i >= 0; i--)
> + {
> + seq = regexp->regexp.oneof.regexps [i];
> + if (seq->mode == rm_sequence)
> + for (j = 0; j < seq->regexp.sequence.regexps_num; j++)
> + {
> + allof = seq->regexp.sequence.regexps [j];
> + if (allof->mode == rm_allof)
> + for (k = 0; k < allof->regexp.allof.regexps_num; k++)
> + {
> + unit = allof->regexp.allof.regexps [k];
> + if (unit->mode == rm_unit)
> + process_unit_to_form_the_same_automaton_unit_lists
> + (unit, regexp, j);
> + else if (allof->mode != rm_nothing)
> + abort ();
... here....
Any idea why?
Honza
More information about the Gcc-patches
mailing list