This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Automatically generated DFA descriptions


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]