> -----Original Message----- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Uros Bizjak > Sent: Monday, September 18, 2017 12:23 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 Mon, Sep 18, 2017 at 12:17 PM, Peryt, Sebastian > <sebastian.pe...@intel.com> wrote: > >> -----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. > > Please look at libgcc/config/i386/cpuinfo.h. The comment here says that: > > /* Any new types or subtypes have to be inserted at the end. */ > > The above patch should then add M_INTEL_KNM as the last entry *before* > M_CPU_SUBTYPE_START. >
Sorry, I didn't notice this value at first. I believe now it's correct. Sebastian > > 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? > > This means I have to synchronize gcc part with libgcc. I'll do it later today. > > Uros.
KNM_enabling_v3.patch
Description: KNM_enabling_v3.patch