Pentium DFA description
Jan Hubicka
jh@suse.cz
Thu May 9 08:21:00 GMT 2002
>
>
> This is basically Jan's Pentium DFA description with a few minor changes:
>
> 1. Jan made a change to mark a variety of FP instructions as pairable
> in the U pipe. That is wrong. The only pairing for FP instructions
> I'm aware of is when they pair with fxch which we don't made any attempt
> to model in either the old or the new scheduling description.
It is becase we don't schedule post-reg-stack. Once I would like to reimplement
my INDREG code, but right now, I have much other plans.
>
> 2. A minor bug in the pent_call reservation caused genattrtab to fail a
> consistency check when building the DFA. That minor bug was fixed.
>
> 3. The insn reservations have been properly formatted ;-)
Jeff,
thanks a ton!
I didn't expected you to do all the job, but it is really good, since I have
finals in three weeks from now so I don't have much time for gcc right now
myself.
>
> The Pentium DFA description makes no statistically significant difference
> in the integer suite. The DFA description did result in a measurable
> improvement
> for FP codes, roughly 1.2% across the entire SPECfp suite.
This is really interesting. I don't have slightest idea what went wrong
with the old one.
I was also thinking about definig lookahead. There can be some marginal
cases where this helps when pairing load/modify/write instructions.
>
> I also benchmarked the time genattrtab took to build insn-attrtab.c for the
> old pipeline description as well as the new DFA description.
>
> For the old pipeline description, genattrtab took 58.22 seconds of wall clock
> time (57.92 of that in user time). Contrast that to the DFA description which
> took 11.17 seconds (11.06 in user time).
>
> Now before we all jump for joy, the trend I've noticed benchmarking the time
> to build insn-attrtab has been the opposite. ie, the DFA descriptions have
> consistently taken longer than the old descriptions. Whatever the old Pentium
> description was doing (maybe the conflict list stuff?) was particularly
> expensive
> while doing the equivalent with a DFA description is apparently very cheap.
Yes, the pentim description was largest from all the cases and I believe mostly
because each instruction pattern can behave multiple ways. While old version
just produced big unwound tables, new one just produces list of types and
then describes the types separately.
Now it is time for the Athlon description. Unforutnately it still results
in bigger tables and slower code :(
Honza
More information about the Gcc-patches
mailing list