diff options
| author | bjorn3 <bjorn3@users.noreply.github.com> | 2020-02-14 18:23:29 +0100 |
|---|---|---|
| committer | bjorn3 <bjorn3@users.noreply.github.com> | 2020-02-14 18:23:29 +0100 |
| commit | 430f738392dae75954bfa0059025dd18dadeff7d (patch) | |
| tree | d2ab1d816b329b7186bcb58cc14056f8faf73dd3 /src/optimize | |
| parent | b5b2ffab6ae4026f8d9a8b552e075fdc81002ec7 (diff) | |
| download | rust-430f738392dae75954bfa0059025dd18dadeff7d.tar.gz rust-430f738392dae75954bfa0059025dd18dadeff7d.zip | |
Update Cranelift for basic blocks
Diffstat (limited to 'src/optimize')
| -rw-r--r-- | src/optimize/code_layout.rs | 22 | ||||
| -rw-r--r-- | src/optimize/mod.rs | 4 | ||||
| -rw-r--r-- | src/optimize/stack2reg.rs | 6 |
3 files changed, 16 insertions, 16 deletions
diff --git a/src/optimize/code_layout.rs b/src/optimize/code_layout.rs index 4d2301c6f6c..7e910fe08be 100644 --- a/src/optimize/code_layout.rs +++ b/src/optimize/code_layout.rs @@ -10,25 +10,25 @@ use crate::prelude::*; -pub(super) fn optimize_function(ctx: &mut Context, cold_ebbs: &EntitySet<Ebb>) { - // FIXME Move the ebb in place instead of remove and append once +pub(super) fn optimize_function(ctx: &mut Context, cold_blocks: &EntitySet<Block>) { + // FIXME Move the block in place instead of remove and append once // bytecodealliance/cranelift#1339 is implemented. - let mut ebb_insts = HashMap::new(); - for ebb in cold_ebbs.keys().filter(|&ebb| cold_ebbs.contains(ebb)) { - let insts = ctx.func.layout.ebb_insts(ebb).collect::<Vec<_>>(); + let mut block_insts = HashMap::new(); + for block in cold_blocks.keys().filter(|&block| cold_blocks.contains(block)) { + let insts = ctx.func.layout.block_insts(block).collect::<Vec<_>>(); for &inst in &insts { ctx.func.layout.remove_inst(inst); } - ebb_insts.insert(ebb, insts); - ctx.func.layout.remove_ebb(ebb); + block_insts.insert(block, insts); + ctx.func.layout.remove_block(block); } // And then append them at the back again. - for ebb in cold_ebbs.keys().filter(|&ebb| cold_ebbs.contains(ebb)) { - ctx.func.layout.append_ebb(ebb); - for inst in ebb_insts.remove(&ebb).unwrap() { - ctx.func.layout.append_inst(inst, ebb); + for block in cold_blocks.keys().filter(|&block| cold_blocks.contains(block)) { + ctx.func.layout.append_block(block); + for inst in block_insts.remove(&block).unwrap() { + ctx.func.layout.append_inst(inst, block); } } } diff --git a/src/optimize/mod.rs b/src/optimize/mod.rs index ba9839e84be..23c14a57c56 100644 --- a/src/optimize/mod.rs +++ b/src/optimize/mod.rs @@ -7,11 +7,11 @@ pub fn optimize_function<'tcx>( tcx: TyCtxt<'tcx>, instance: Instance<'tcx>, ctx: &mut Context, - cold_ebbs: &EntitySet<Ebb>, + cold_blocks: &EntitySet<Block>, clif_comments: &mut crate::pretty_clif::CommentWriter, ) { // The code_layout optimization is very cheap. - self::code_layout::optimize_function(ctx, cold_ebbs); + self::code_layout::optimize_function(ctx, cold_blocks); if tcx.sess.opts.optimize == rustc_session::config::OptLevel::No { return; // FIXME classify optimizations over opt levels diff --git a/src/optimize/stack2reg.rs b/src/optimize/stack2reg.rs index 8fa5fb13c2e..acce3a6465b 100644 --- a/src/optimize/stack2reg.rs +++ b/src/optimize/stack2reg.rs @@ -116,7 +116,7 @@ impl<'a> OptimizeContext<'a> { let mut stack_slot_usage_map = BTreeMap::<OrdStackSlot, StackSlotUsage>::new(); let mut cursor = FuncCursor::new(&mut ctx.func); - while let Some(_ebb) = cursor.next_ebb() { + while let Some(_block) = cursor.next_block() { while let Some(inst) = cursor.next_inst() { match cursor.func.dfg[inst] { InstructionData::StackLoad { @@ -249,7 +249,7 @@ pub(super) fn optimize_function<T: std::fmt::Debug>( fn combine_stack_addr_with_load_store(func: &mut Function) { // Turn load and store into stack_load and stack_store when possible. let mut cursor = FuncCursor::new(func); - while let Some(_ebb) = cursor.next_ebb() { + while let Some(_block) = cursor.next_block() { while let Some(inst) = cursor.next_inst() { match cursor.func.dfg[inst] { InstructionData::Load { opcode: Opcode::Load, arg: addr, flags: _, offset } => { @@ -284,7 +284,7 @@ fn remove_unused_stack_addr_and_stack_load(opt_ctx: &mut OptimizeContext) { let mut stack_addr_load_insts_users = HashMap::<Inst, HashSet<Inst>>::new(); let mut cursor = FuncCursor::new(&mut opt_ctx.ctx.func); - while let Some(_ebb) = cursor.next_ebb() { + while let Some(_block) = cursor.next_block() { while let Some(inst) = cursor.next_inst() { for &arg in cursor.func.dfg.inst_args(inst) { if let ValueDef::Result(arg_origin, 0) = cursor.func.dfg.value_def(arg) { |
