This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
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.Rumyantsev@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
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |