-
- Downloads
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. From-SVN: r212230
Showing
- gcc/ChangeLog 23 additions, 0 deletionsgcc/ChangeLog
- gcc/basic-block.h 3 additions, 0 deletionsgcc/basic-block.h
- gcc/config/epiphany/epiphany-protos.h 2 additions, 1 deletiongcc/config/epiphany/epiphany-protos.h
- gcc/config/epiphany/epiphany.c 2 additions, 1 deletiongcc/config/epiphany/epiphany.c
- gcc/config/epiphany/resolve-sw-modes.c 1 addition, 1 deletiongcc/config/epiphany/resolve-sw-modes.c
- gcc/config/i386/i386.c 2 additions, 1 deletiongcc/config/i386/i386.c
- gcc/config/sh/sh.c 11 additions, 3 deletionsgcc/config/sh/sh.c
- gcc/config/sh/sh.md 4 additions, 6 deletionsgcc/config/sh/sh.md
- gcc/doc/tm.texi 3 additions, 3 deletionsgcc/doc/tm.texi
- gcc/lcm.c 26 additions, 8 deletionsgcc/lcm.c
- gcc/mode-switching.c 197 additions, 137 deletionsgcc/mode-switching.c
- gcc/target.def 3 additions, 3 deletionsgcc/target.def
- gcc/testsuite/ChangeLog 4 additions, 0 deletionsgcc/testsuite/ChangeLog
Loading
Please register or sign in to comment