On Wed, Nov 29, 2017 at 10:39 AM, Peryt, Sebastian <sebastian.pe...@intel.com> wrote: > Hi, > > I'd like to ask for backporting to GCC-7 branch vzeroupper generation patches > from trunk, > that are resolving 3 PRs: > PR target/82941 > PR target/82942 > PR target/82990 > > Two patches were combined into one and rebased. Bootstraped and tested. > Is it ok for merge? > > Changelog: > > Fix PR82941 and PR82942 by adding proper vzeroupper generation on SKX. > Add X86_TUNE_EMIT_VZEROUPPER to indicate if vzeroupper instruction should > be inserted before a transfer of control flow out of the function. It is > turned on by default unless we are tuning for KNL. Users can always use > -mzeroupper or -mno-zeroupper to override X86_TUNE_EMIT_VZEROUPPER. > > 2017-11-29 Sebastian Peryt <sebastian.pe...@intel.com> > H.J. Lu <hongjiu...@intel.com> > > gcc/ > Bakcported from trunk > PR target/82941 > PR target/82942 > PR target/82990 > * config/i386/i386.c (pass_insert_vzeroupper): Remove > TARGET_AVX512F check from gate condition. > (ix86_check_avx256_register): Changed to ... > (ix86_check_avx_upper_register): ... this. Add extra check for > VALID_AVX512F_REG_OR_XI_MODE. > (ix86_avx_u128_mode_needed): Changed > ix86_check_avx256_register to ix86_check_avx_upper_register. > (ix86_check_avx256_stores): Changed to ... > (ix86_check_avx_upper_stores): ... this. Changed > ix86_check_avx256_register to ix86_check_avx_upper_register. > (ix86_avx_u128_mode_after): Changed > avx_reg256_found to avx_upper_reg_found. Changed > ix86_check_avx256_stores to ix86_check_avx_upper_stores. > (ix86_avx_u128_mode_entry): Changed > ix86_check_avx256_register to ix86_check_avx_upper_register. > (ix86_avx_u128_mode_exit): Ditto. > (ix86_option_override_internal): Set MASK_VZEROUPPER if > neither -mzeroupper nor -mno-zeroupper is used and > TARGET_EMIT_VZEROUPPER is set. > * config/i386/i386.h: (host_detect_local_cpu): New define. > (TARGET_EMIT_VZEROUPPER): New. > * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. > > 2017-11-29 Sebastian Peryt <sebastian.pe...@intel.com> > H.J. Lu <hongjiu...@intel.com> > > gcc/testsuite/ > Backported from trunk > PR target/82941 > PR target/82942 > PR target/82990 > * gcc.target/i386/pr82941-1.c: New test. > * gcc.target/i386/pr82941-2.c: Likewise. > * gcc.target/i386/pr82942-1.c: Likewise. > * gcc.target/i386/pr82942-2.c: Likewise. > * gcc.target/i386/pr82990-1.c: Likewise. > * gcc.target/i386/pr82990-2.c: Likewise. > * gcc.target/i386/pr82990-3.c: Likewise. > * gcc.target/i386/pr82990-4.c: Likewise. > * gcc.target/i386/pr82990-5.c: Likewise. > * gcc.target/i386/pr82990-6.c: Likewise. > * gcc.target/i386/pr82990-7.c: Likewise.
OK. Thanks, Uros.