diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2014-11-05 12:14:45 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2014-11-05 12:14:45 +0000 |
commit | 433e4164339f18d0b8798968444a56b681b5232c (patch) | |
tree | 88c6a7cd78cd2d08ee7660f43cdd212ed29d680e /gcc/passes.c | |
parent | e0d14c396aaa626e054284cf96a250c7aaf907e4 (diff) | |
download | gcc-433e4164339f18d0b8798968444a56b681b5232c.zip gcc-433e4164339f18d0b8798968444a56b681b5232c.tar.gz gcc-433e4164339f18d0b8798968444a56b681b5232c.tar.bz2 |
Reorganize post-ra pipeline for targets without register allocation.
* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
pass_cleanup_barriers, pass_delay_slots,
pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
pass_shorten_branches, pass_est_nothrow_function_flags,
pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
into pass_late_compilation.
(pass_late_compilation): Add.
* passes.c (pass_data_late_compilation, pass_late_compilation,
make_pass_late_compilation): New.
* timevar.def (TV_LATE_COMPILATION): New.
From-SVN: r217124
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index f9d15b8..9ec0ebf 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -576,6 +576,44 @@ make_pass_postreload (gcc::context *ctxt) return new pass_postreload (ctxt); } +namespace { + +const pass_data pass_data_late_compilation = +{ + RTL_PASS, /* type */ + "*all-late_compilation", /* name */ + OPTGROUP_NONE, /* optinfo_flags */ + TV_LATE_COMPILATION, /* tv_id */ + PROP_rtl, /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + 0, /* todo_flags_finish */ +}; + +class pass_late_compilation : public rtl_opt_pass +{ +public: + pass_late_compilation (gcc::context *ctxt) + : rtl_opt_pass (pass_data_late_compilation, ctxt) + {} + + /* opt_pass methods: */ + virtual bool gate (function *) + { + return reload_completed || targetm.no_register_allocation; + } + +}; // class pass_late_compilation + +} // anon namespace + +static rtl_opt_pass * +make_pass_late_compilation (gcc::context *ctxt) +{ + return new pass_late_compilation (ctxt); +} + /* Set the static pass number of pass PASS to ID and record that |