r212230 - in /trunk/gcc: ChangeLog basic-block....

chrbr@gcc.gnu.org chrbr@gcc.gnu.org
Wed Jul 2 13:03:00 GMT 2014


Author: chrbr
Date: Wed Jul  2 13:03:14 2014
New Revision: 212230

URL: https://gcc.gnu.org/viewcvs?rev=212230&root=gcc&view=rev
Log:
Support mode toggle.

* mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
(make_preds_opaque): Delete.
(clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
(commit_mode_sets): New function.
(optimize_mode_switching): Handle current_mode to mode_switching_emit.
Process all modes at once.
* basic-block.h (pre_edge_lcm_avs): Declare.
* lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
Call clear_aux_for_edges. Fix comments.
(pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
(pre_edge_rev_lcm): Idem.
* config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode parameter.
* config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): Idem.
* config/i386/i386.c (x96_emit_mode_set): Idem.
* config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
* config/sh/sh.md (toggle_pr): 	Defined if TARGET_FPU_SINGLE.
(fpscr_toggle) Disallow from delay slot.
* target.def (emit_mode_set): Add prev_mode parameter.
* doc/tm.texi: Regenerate.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/basic-block.h
    trunk/gcc/config/epiphany/epiphany-protos.h
    trunk/gcc/config/epiphany/epiphany.c
    trunk/gcc/config/epiphany/resolve-sw-modes.c
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.md
    trunk/gcc/doc/tm.texi
    trunk/gcc/lcm.c
    trunk/gcc/mode-switching.c
    trunk/gcc/target.def
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list