> -----Original Message----- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Uros Bizjak > Sent: Sunday, September 17, 2017 6:14 PM > To: Peryt, Sebastian <sebastian.pe...@intel.com> > Cc: gcc-patches@gcc.gnu.org; Kirill Yukhin <kirill.yuk...@gmail.com> > Subject: Re: [PATCH][x86] Knights Mill -march/-mtune options > > On Thu, Sep 14, 2017 at 1:47 PM, Peryt, Sebastian <sebastian.pe...@intel.com> > wrote: > > Hi, > > > > This patch adds options -march=/-mtune=knm for Knights Mill. > > > > 2017-09-14 Sebastian Peryt <sebastian.pe...@intel.com> gcc/ > > > > * config.gcc: Support "knm". > > * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm". > > * config/i386/i386-c.c (ix86_target_macros_internal): Handle > > PROCESSOR_KNM. > > * config/i386/i386.c (m_KNM): Define. > > (processor_target_table): Add "knm". > > (PTA_KNM): Define. > > (ix86_option_override_internal): Add "knm". > > (ix86_issue_rate): Add PROCESSOR_KNM. > > (ix86_adjust_cost): Ditto. > > (ia32_multipass_dfa_lookahead): Ditto. > > (get_builtin_code_for_version): Handle PROCESSOR_KNM. > > (fold_builtin_cpu): Define M_INTEL_KNM. > > * config/i386/i386.h (TARGET_KNM): Define. > > (processor_type): Add PROCESSOR_KNM. > > * config/i386/x86-tune.def: Add m_KNM. > > * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type. > > > > > > gcc/testsuite/ > > > > * gcc.target/i386/funcspec-5.c: Test knm. > > > > Is it ok for trunk? > > You also have to update libgcc/cpuinfo.h together with fold_builtin_cpu from > i386.c. Please note that all new processor types and subtypes have to be added > at the end of the enum. >
Uros, I have updated libgcc/cpuinfo.h and libgcc/cpuinfo.c. I understood that CPU_TYPE_MAX in libgcc/cpuinfo.h processor_types is some kind of barrier, this is why I put KNM before that. Is that correct thinking? As for fold_builtin_cpu in i386.c I already have something like this: @@ -34217,6 +34229,7 @@ fold_builtin_cpu (tree fndecl, tree *args) M_AMDFAM15H, M_INTEL_SILVERMONT, M_INTEL_KNL, + M_INTEL_KNM, M_AMD_BTVER1, M_AMD_BTVER2, M_CPU_SUBTYPE_START, @@ -34262,6 +34275,7 @@ fold_builtin_cpu (tree fndecl, tree *args) {"bonnell", M_INTEL_BONNELL}, {"silvermont", M_INTEL_SILVERMONT}, {"knl", M_INTEL_KNL}, + {"knm", M_INTEL_KNM}, {"amdfam10h", M_AMDFAM10H}, {"barcelona", M_AMDFAM10H_BARCELONA}, {"shanghai", M_AMDFAM10H_SHANGHAI}, I couldn't find any other place where I'm supposed to add anything extra. Additionally I updated one extra test I found - gcc.target/i386/funcspec-56.inc > Ops, and ANDFAM17H processor type should not be there in cpuinfo.h. Sorry, I don't understand - it shouldn't be at this position, or in this enum at all? > > Uros. Thanks, Sebastian 2017-09-18 Sebastian Peryt <sebastian.pe...@intel.com> gcc/ * config.gcc: Support "knm". * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm". * config/i386/i386-c.c (ix86_target_macros_internal): Handle PROCESSOR_KNM. * config/i386/i386.c (m_KNM): Define. (processor_target_table): Add "knm". (PTA_KNM): Define. (ix86_option_override_internal): Add "knm". (ix86_issue_rate): Add PROCESSOR_KNM. (ix86_adjust_cost): Ditto. (ia32_multipass_dfa_lookahead): Ditto. (get_builtin_code_for_version): Handle PROCESSOR_KNM. (fold_builtin_cpu): Define M_INTEL_KNM. * config/i386/i386.h (TARGET_KNM): Define. (processor_type): Add PROCESSOR_KNM. * config/i386/x86-tune.def: Add m_KNM. * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type. libgcc/ * config/i386/cpuinfo.h (processor_types): Add INTEL_KNM. * config/i386/cpuinfo.c (get_intel_cpu): Detect Knights Mill. gcc/testsuite/ * gcc.target/i386/funcspec-5.c: Test knm. * gcc.target/i386/funcspec-56.inc: Test arch=knm.
KNM_enabling_v2.patch
Description: KNM_enabling_v2.patch