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.