http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47440



--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2012-11-06 18:03:40 
UTC ---

Author: kyukhin

Date: Tue Nov  6 10:29:23 2012

New Revision: 193229



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193229

Log:

        * 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.



testsuite/ChangeLog:

        * 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.







Added:

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-27.c

Modified:

    trunk/gcc/ChangeLog

    trunk/gcc/config/i386/i386-protos.h

    trunk/gcc/config/i386/i386.c

    trunk/gcc/config/i386/i386.h

    trunk/gcc/config/i386/i386.md

    trunk/gcc/config/i386/predicates.md

    trunk/gcc/config/i386/sse.md

    trunk/gcc/testsuite/ChangeLog

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-10.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-11.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-12.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-19.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-5.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-8.c

    trunk/gcc/testsuite/gcc.target/i386/avx-vzeroupper-9.c

Reply via email to