This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 2nd try for patch for automaton based pipeline hazard recognizer (part #1)
- To: Dan Nicolaescu <dann at godzilla dot ICS dot UCI dot EDU>
- Subject: Re: 2nd try for patch for automaton based pipeline hazard recognizer (part #1)
- From: Vladimir Makarov <vmakarov at redhat dot com>
- Date: Thu, 14 Jun 2001 15:50:59 -0400
- CC: gcc-patches at gcc dot gnu dot org, Vladimir Makarov <vmakarov at toke dot toronto dot redhat dot com>, geoffk at cygnus dot com
- References: <200106141226.aa00901@gremlin-relay.ics.uci.edu>
Dan Nicolaescu wrote:
>
> [snip]
>
> I have a comment on the constructs used to describe the pipeline, it
> uses regular expressions in a string.
>
> That is a little bit not-orthogonal with the rest of the .md file, as
> regexps are an infix notation and the rest of .md language is a prefix
> language.
>
> IMO something like:
>
> (define_insn_reservation "mult" 4 (eq_attr "cpu" "mult")
> (sequence "i1_pipeline" (nothing 3)
> (or "port_0" "port1")))
Hi, Dan.
Sequence requires list of rtl expressions. That means you should write
(sequence (const_string "i1_pipeline") (nothing 3)
>
> is a little bit more understandable and probably easier to parse
> than:
>
> (define_insn_reservation "mult" 4 (eq_attr "cpu" "mult")
> "i1_pipeline, nothing*3, (port_0 | port1)")
>
> (stolen from your example)
>
> Of course this could turn into a religious discussion...
> Just wondering what everybody thinks...
RTL has some constructions which could be used to describe the
reservations (sequence, parallel etc.). If we are using rtl
constructions to describe the reservation, it will be too verbose.
Typical example is using (const_string "a") instead of "a". A 200 lines
description (of one VLIW processor) would be 400-600 lines in such
case. Also this description would be not readable. Actually, the first
design used such approach and was rejected.
If we don't use existing RTL constructions, we need to create new ones
slightly different to the existing constructions which is also not
good. So I'd choose brevity and simplicity to orthogonality in this
case. That is not only my opinion.
Vladimir