[x86, PATCH 2/2] Enabling of the new Intel microarchitecture Silvermont

Yuri Rumyantsev ysrumyan@gmail.com
Thu May 30 13:58:00 GMT 2013


Hi All!



Second patch enables several Silvermont uarch features which improve
performance of the new processor (based on experiments on real SLM
hardware):



1. If using a 2-source or 3-source LEA for non-destructive destination
purposes, or due to wanting ability to use SCALE, the use of LEA is
preferable.

2. Transformation of FP conversion for memory operands into conversion
from register.

3. Couple of improvements  for post-reload scheduling:

    - increase latency of integer loads and load/store with exact dependence;

    - simple re-ordering of the top of ready list - if 2 instructions
at the top of the list have the same priority we consider instruction
which producer(s) were scheduled earlier as the best candidate.

Bootstrapped and tested on x86_64-unknown-linux-gnu, ok for trunk?

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

        Silvermont (SLM) architecture performance tuning.
        * 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.



More information about the Gcc-patches mailing list