Hi all,

It is known that LEA splitting is one of the most critical problems
for Atom processors and changes try to improve it through:
1.       More aggressive Lea splitting – do not perform splitting if
only split cost exceeds AGU stall .
2.       Reordering splitting instructions to get better scheduling –
use the farthest defined register for SET instruction, then add
constant offset if any and finally generate add instruction.This gives
+0.5% speedup in geomean for eembc2.0 suite on Atom.
All required testing was done – bootstraps for Atom & Core2, make check.
Note that this fix affects only on Atom processors.

ChangeLog:
2012-08-08  Yuri Rumyantsev  yuri.s.rumyant...@intel.com

* config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add additional argument.
* config/i386/i386.md (ix86_splitt_lea_for_addr) : Add additional
argument curr_insn.
* config/i386/i386.c (find_nearest_reg-def): New function. Find
nearest register definition used in address.
(ix86_split_lea_for_addr) : Do more aggressive lea splitting and
instructions reodering to get opportunities for better scheduling.

Is it OK for trunk?

Attachment: lea_improvements.diff
Description: Binary data

Reply via email to