2012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com>
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2012 19:58:11 +0000 (19:58 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2012 19:58:11 +0000 (19:58 +0000)
commit4d1b60056998fa8b721fad1fb3e9afb5cc05bc3c
treef5c3f42395f6a34ab000955bbebe2eb5f5a7317d
parent1fea9dc65d09df3de95789f204bb08a241057023
2012-08-16  Yuri Rumyantsev  <ysrumyan@gmail.com>

* config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
additional argument.
* config/i386/i386.md (ix86_split_lea_for_addr) : Add
additional argument curr_insn.
* config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
register first, depending on their defintion distances.
(ix86_lea_outperforms): Prefer LEA only if split cost exceeds
AGU stall.
(find_nearest_reg-def): New function. Find register with
nearest definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190452 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.md