This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Improve performance for Haswell family.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Yuri Rumyantsev <ysrumyan at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Igor Zamyatin <izamyatin at gmail dot com>
- Date: Fri, 14 Aug 2015 18:01:00 +0200
- Subject: Re: [PATCH] Improve performance for Haswell family.
- Authentication-results: sourceware.org; auth=none
- References: <CAEoMCqSa3z0B1b6UzkKThGzcaq2aX7pewyRPj8cgSNwL38ELyg at mail dot gmail dot com> <CAFULd4Z8+TVkAwQeGk349LTyfYTBwBDAGcGLMKryxRjXDKBT4w at mail dot gmail dot com> <CAEoMCqQieXZmB9RzVjmTErJmtr8h_Upz+xSo7OSy96XBWHAijg at mail dot gmail dot com>
On Fri, Aug 14, 2015 at 5:09 PM, Yuri Rumyantsev <ysrumyan@gmail.com> wrote:
> Will it be fine for you if I split core2.md to instruction reservation
> definition for core2 (old core2.md got old cpu core2) and new
> nehalem.md (my changes for core2.md but for cpu nehalem only)?
I'm looking at [1], where targets from core2 up to IvyBridge look
similar (having defined latencies for 5 ports). Haswell introduces
additional ports, and looking at your patch, many reservations are
changed to accommodate these additional ports.
I think the best way is to leave "nehalem" scheduling model to older
targets, and introduce "haswell" scheduling model (a.k.a "cpu"
attribute). Then add "hw_core", "hw_load" and "hw_store" automata,
"hw_p6" and "hw_p7" cpu units, and add new reservations for haswell
scheduling model (IOW; introduce for example "hw_imov_load"
reservation instead of changing existing "c2_imov_load).
IMO, these new patterns could be grouped in a new haswell.md file.
[1] http://www.agner.org/optimize/instruction_tables.pdf
Uros.