Original message: https://gcc.gnu.org/ml/gcc-patches/2017-07/msg02005.html
Patches 2 and 3 have been committed and I have corrected the error in patch 5. I configuring with --enable-checking=yes,rtl --enable-languages=all and retested with RUNTESTFLAGS="--target_board=unix/\{,-m32\}" The updated patches fix an error when using mov instead of push and add documentation for changes to target-supports.exp. I have included modified ChangeLogs. In addition to to fixing the ICE, this patch set makes more efficient use of stack space in some cases the outgoing stack boundary is > 16 bytes and realignment is necessary. This adds new tests, some of which require avx512f (gcc/testsuite/gcc.target/i386/pr80969-4*.c) -- these I have only tested these using Intel SDE. Below is an updated list of the patches. 1. https://gcc.gnu.org/ml/gcc-patches/2017-07/msg02006.html 2. Committed. 3. Committed. 4. https://gcc.gnu.org/ml/gcc-patches/2017-07/msg02009.html 5. v2 -- https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00249.html 6. v2 -- https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00618.html Thanks, Daniel
2017-08-08 Daniel Santos <daniel.san...@pobox.com> * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset): Remove (ix86_frame::stack_realign_allocate): New field. (struct machine_frame_state): Modify comments. (machine_frame_state::sp_realigned_fp_end): New field. * config/i386/i386.c (ix86_compute_frame_layout): Modify. (sp_valid_at): Likewise. (fp_valid_at): Likewise. (choose_baseaddr): Modify comments. (ix86_emit_outlined_ms2sysv_save): Modify. (ix86_expand_prologue): Likewise. * doc/sourcebuild.texi (avx2, avx2_runtime): Add missing items to effective-targets. (avx512f, avx512f_runtime): Add new items to effective-tarets.
2017-08-08 Daniel Santos <daniel.san...@pobox.com> * lib/target-supports.exp (check_avx512_os_support_available): New Procedure. (check_avx2_hw_available): Modify. (check_avx512f_hw_available): New Procedure. (check_effective_target_avx512f_runtime): Likewise. * gcc.target/i386/pr80969-1.c: New testcase. * gcc.target/i386/pr80969-2a.c: Likewise. * gcc.target/i386/pr80969-2.c: Likewise. * gcc.target/i386/pr80969-3.c: Likewise. * gcc.target/i386/pr80969-4a.c: Likewise. * gcc.target/i386/pr80969-4b.c: Likewise. * gcc.target/i386/pr80969-4.c: Likewise.