On Fri, Aug 14, 2015 at 5:09 PM, Yuri Rumyantsev <ysrum...@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.

Reply via email to