From 057d4f6e3cfa4b1bfbca69da024d96c62486647c Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Wed, 31 Jul 2019 12:43:01 +0200 Subject: [PATCH] Simple preopt: Fold (imm OP x) into (OP_IMM x imm) whenever possible; --- cranelift/codegen/src/simple_preopt.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cranelift/codegen/src/simple_preopt.rs b/cranelift/codegen/src/simple_preopt.rs index b164ca21f6..9da90d2e4e 100644 --- a/cranelift/codegen/src/simple_preopt.rs +++ b/cranelift/codegen/src/simple_preopt.rs @@ -556,6 +556,11 @@ fn simplify(pos: &mut FuncCursor, inst: Inst) { simplify(pos, inst); } else if let Some(imm) = resolve_imm64_value(&pos.func.dfg, args[0]) { let new_opcode = match opcode { + Opcode::Iadd => Opcode::IaddImm, + Opcode::Imul => Opcode::ImulImm, + Opcode::Band => Opcode::BandImm, + Opcode::Bor => Opcode::BorImm, + Opcode::Bxor => Opcode::BxorImm, Opcode::Isub => Opcode::IrsubImm, _ => return, };