This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] Automatically generated DFA descriptions
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 10 Jul 2004 08:51:49 +0100
- Subject: Re: [RFC] Automatically generated DFA descriptions
- References: <40EF973A.2050008@gnu.org>
Paolo Bonzini <bonzini@gnu.org> writes:
> 2004-07-10 Paolo Bonzini <bonzini@gnu.org>
>
> * config/mips/3000.md, config/mips/3900.md,
> config/mips/4000.md, config/mips/4100.md,
> config/mips/4120.md, config/mips/4300.md,
> config/mips/4600.md, config/mips/4650.md,
> config/mips/5000.md: New files.
> * config/mips/mips.md: Include them, remove define_function_units.
FWIW, the r3000 conversion is already done:
2004-06-23 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
* config/mips/mips.md: Remove R3000 scheduling description.
* config/mips/3000.md: New file.
But your automatically-generated files look like a very good
starting point for the rest. Thanks a lot for doing this!
If you don't mind, I'd still prefer to clean up and double-check the
new files by hand before applying them. I'll try to do it this weekend.
For example, with the r3000, we eventually got to a situation where the
DFA description produced no change in output over the define_function_unit
one. I'd like to verify that the same is true for the others as well.
There's also a few formatting glitches and redundant checks for mips16
(on processors that don't support it). We'll probably want to use
separate automata for imuldiv units, etc.
BTW, as a general comment: I'm a bit worried that after a full transition
to DFA, we're going to have lots of automata in the MIPS port. More than
30, at a guess. Each call to state_transition() will have to step every
automata, even though only a handful of states are actually of any use.
I was thinking we should have some way of identifying attributes like
"cpu" as run-time constants, and that we could have separate state_reset()/
state_transition() functions for each cpu. Anyone looking at this?
Richard