From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3132 invoked by alias); 5 Nov 2012 19:52:16 -0000 Received: (qmail 3122 invoked by uid 22791); 5 Nov 2012 19:52:15 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_AV,TW_VZ X-Spam-Check-By: sourceware.org Received: from mail-pa0-f47.google.com (HELO mail-pa0-f47.google.com) (209.85.220.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 05 Nov 2012 19:52:11 +0000 Received: by mail-pa0-f47.google.com with SMTP id fa11so3956807pad.20 for ; Mon, 05 Nov 2012 11:52:11 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.217.104 with SMTP id ox8mr33307908pbc.35.1352145131110; Mon, 05 Nov 2012 11:52:11 -0800 (PST) Received: by 10.66.246.232 with HTTP; Mon, 5 Nov 2012 11:52:10 -0800 (PST) Date: Mon, 05 Nov 2012 19:52:00 -0000 Message-ID: Subject: Re: [PATCH] Vzeroupper placement/47440 From: Uros Bizjak To: Vladimir Yakovlev Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-11/txt/msg00423.txt.bz2 Hello! > 2012-11-04 Vladimir Yakovlev > > * mode-switching.c (create_pre_exit): Added code for maybe_builtin_apply case. The part above is already committed. > * config/i386/i386-protos.h (emit_i387_cw_initialization): Deleted. > (emit_vzero): Added prototype. > (ix86_mode_entry): Likewise. > (ix86_mode_exit): Likewise. > (ix86_emit_mode_set): Likewise. > > * config/i386/i386.c (typedef struct block_info_def): Deleted. > (define BLOCK_INFO): Deleted. > (check_avx256_stores): Added checking for MEM_P. > (move_or_delete_vzeroupper_2): Deleted. > (move_or_delete_vzeroupper_1): Deleted. > (move_or_delete_vzeroupper): Deleted. > (ix86_maybe_emit_epilogue_vzeroupper): Deleted. > (function_pass_avx256_p): Deleted. > (ix86_function_ok_for_sibcall): Deleted disabling sibcall. > (nit_cumulative_args): Deleted initialization of of avx256 fields of > cfun->machine. > (ix86_emit_restore_sse_regs_using_mov): Deleted vzeroupper generation. > (ix86_expand_epilogue): Likewise. > (ix86_avx_u128_mode_needed): New. > (ix86_i387_mode_needed): Renamed ix86_mode_needed. > (ix86_mode_needed): New. > (ix86_avx_u128_mode_after): New. > (ix86_mode_after): New. > (ix86_avx_u128_mode_entry): New. > (ix86_mode_entry): New. > (ix86_avx_u128_mode_exit): New. > (ix86_mode_exit): New. > (ix86_emit_mode_set): New. > (ix86_expand_call): Deleted vzeroupper generation. > (ix86_split_call_vzeroupper): Deleted. > (ix86_init_machine_status): Initialzed optimize_mode_switching. > (ix86_expand_special_args_builtin): Changed. > (ix86_reorg): Deleted a call of move_or_delete_vzeroupper. > > * config/i386/i386.h (VALID_AVX256_REG_OR_OI_MODE): New. > (AVX_U128): New. > (avx_u128_state): New. > (NUM_MODES_FOR_MODE_SWITCHING): Added AVX_U128_ANY. > (MODE_AFTER): New. > (MODE_ENTRY): New. > (MODE_EXIT): New. > (EMIT_MODE_SET): Changed. > (machine_function): Deleted avx256 fields. > > * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): Deleted. > (define_insn_and_split "*call_vzeroupper"): Deleted. > (define_insn_and_split "*call_rex64_ms_sysv_vzeroupper"): Deleted. > (define_insn_and_split "*sibcall_vzeroupper"): Deleted. > (define_insn_and_split "*call_pop_vzeroupper"): Deleted. > (define_insn_and_split "*sibcall_pop_vzeroupper"): Deleted. > (define_insn_and_split "*call_value_vzeroupper"): Deleted. > (define_insn_and_split "*sibcall_value_vzeroupper"): Deleted. > (define_insn_and_split "*call_value_rex64_ms_sysv_vzeroupper"): Deleted. > (define_insn_and_split "*call_value_pop_vzeroupper"): Deleted. > (define_insn_and_split "*sibcall_value_pop_vzeroupper"): Deleted. > (define_expand "return"): Deleted vzeroupper emitting. > (define_expand "simple_return"): Deleted. > > * config/i386/predicates.md (vzeroupper_operation): New. > > * config/i386/sse.md (avx_vzeroupper): Changed. > > 2012-11-04 Vladimir Yakovlev > > * gcc.target/i386/avx-vzeroupper-5.c: Changed scan-assembler-times. > gcc.target/i386/avx-vzeroupper-8.c: Likewise. > gcc.target/i386/avx-vzeroupper-9.c: Likewise. > gcc.target/i386/avx-vzeroupper-10.c: Likewise. > gcc.target/i386/avx-vzeroupper-11.c: Likewise. > gcc.target/i386/avx-vzeroupper-12.c: Likewise. > gcc.target/i386/avx-vzeroupper-19.c: Likewis. > gcc.target/i386/avx-vzeroupper-27.c: New. OK for mainline SVN, please commit. Thanks, Uros.