Silvermont (SLM) architecture performance tuning
commitf3de38f1cd50845751b902a386d44bf77f0c8e2d
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 May 2013 15:52:42 +0000 (31 15:52 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 May 2013 15:52:42 +0000 (31 15:52 +0000)
tree042a278a93e3dfcc22ee01de018de0c350b862dd
parent78d82aec87898bf527541f995939a7df94cd6b90
Silvermont (SLM) architecture performance tuning

2013-05-31  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
    Igor Zamyatin  <igor.zamyatin@intel.com>

* config/i386/i386.h (enum ix86_tune_indices): Add
X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.

* config/i386/i386.c (initial_ix86_tune_features)
<X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
(ix86_lea_outperforms): Handle Silvermont tuning.
(ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
call.
(ix86_use_lea_for_mov): Likewise.
(ix86_avoid_lea_for_addr): Likewise.
(ix86_lea_for_add_ok): Likewise.
(exact_dependency_1): New function.
(exact_store_load_dependency): Likewise.
(ix86_adjust_cost): Handle Silvermont tuning.
(do_reoder_for_imul): Likewise.
(swap_top_of_ready_list): New function.
(ix86_sched_reorder): Changed to handle Silvermont tuning.

* config/i386/i386.md (peepholes that split memory operand in fp
converts): New.

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