[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