Hello!

> 2012-11-04  Vladimir Yakovlev  <vladimir.b.yakov...@intel.com>
>
>        * 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  <vladimir.b.yakov...@intel.com>
>
>        * 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.

Reply via email to