]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_codegen_cranelift/src/optimize/mod.rs
Auto merge of #82356 - camelid:render-cleanup, r=GuillaumeGomez
[rust.git] / compiler / rustc_codegen_cranelift / src / optimize / mod.rs
1 //! Various optimizations specific to cg_clif
2
3 use crate::prelude::*;
4
5 mod code_layout;
6 pub(crate) mod peephole;
7 mod stack2reg;
8
9 pub(crate) fn optimize_function<'tcx>(
10     tcx: TyCtxt<'tcx>,
11     instance: Instance<'tcx>,
12     ctx: &mut Context,
13     cold_blocks: &EntitySet<Block>,
14     clif_comments: &mut crate::pretty_clif::CommentWriter,
15 ) {
16     // The code_layout optimization is very cheap.
17     self::code_layout::optimize_function(ctx, cold_blocks);
18
19     if tcx.sess.opts.optimize == rustc_session::config::OptLevel::No {
20         return; // FIXME classify optimizations over opt levels
21     }
22
23     // FIXME(#1142) stack2reg miscompiles lewton
24     if false {
25         self::stack2reg::optimize_function(ctx, clif_comments);
26     }
27
28     crate::pretty_clif::write_clif_file(tcx, "stack2reg", None, instance, &ctx, &*clif_comments);
29     crate::base::verify_func(tcx, &*clif_comments, &ctx.func);
30 }