/rust/registry/src/index.crates.io-6f17d22bba15001f/cranelift-codegen-0.91.1/src/machinst/isle.rs
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | use crate::ir::{types, Inst, Value, ValueList}; | 
| 2 |  | use crate::machinst::{get_output_reg, InsnOutput}; | 
| 3 |  | use alloc::boxed::Box; | 
| 4 |  | use alloc::vec::Vec; | 
| 5 |  | use smallvec::SmallVec; | 
| 6 |  | use std::cell::Cell; | 
| 7 |  | use target_lexicon::Triple; | 
| 8 |  |  | 
| 9 |  | pub use super::MachLabel; | 
| 10 |  | use super::RetPair; | 
| 11 |  | pub use crate::ir::{ | 
| 12 |  |     condcodes, condcodes::CondCode, dynamic_to_fixed, ArgumentExtension, ArgumentPurpose, Constant, | 
| 13 |  |     DynamicStackSlot, ExternalName, FuncRef, GlobalValue, Immediate, SigRef, StackSlot, | 
| 14 |  | }; | 
| 15 |  | pub use crate::isa::unwind::UnwindInst; | 
| 16 |  | pub use crate::machinst::{ | 
| 17 |  |     ABIArg, ABIArgSlot, InputSourceInst, Lower, RealReg, Reg, RelocDistance, Sig, VCodeInst, | 
| 18 |  |     Writable, | 
| 19 |  | }; | 
| 20 |  | pub use crate::settings::TlsModel; | 
| 21 |  |  | 
| 22 |  | pub type Unit = (); | 
| 23 |  | pub type ValueSlice = (ValueList, usize); | 
| 24 |  | pub type ValueArray2 = [Value; 2]; | 
| 25 |  | pub type ValueArray3 = [Value; 3]; | 
| 26 |  | pub type WritableReg = Writable<Reg>; | 
| 27 |  | pub type VecRetPair = Vec<RetPair>; | 
| 28 |  | pub type VecMask = Vec<u8>; | 
| 29 |  | pub type ValueRegs = crate::machinst::ValueRegs<Reg>; | 
| 30 |  | pub type WritableValueRegs = crate::machinst::ValueRegs<WritableReg>; | 
| 31 |  | pub type InstOutput = SmallVec<[ValueRegs; 2]>; | 
| 32 |  | pub type InstOutputBuilder = Cell<InstOutput>; | 
| 33 |  | pub type BoxExternalName = Box<ExternalName>; | 
| 34 |  | pub type Range = (usize, usize); | 
| 35 |  |  | 
| 36 |  | pub enum RangeView { | 
| 37 |  |     Empty, | 
| 38 |  |     NonEmpty { index: usize, rest: Range }, | 
| 39 |  | } | 
| 40 |  |  | 
| 41 |  | /// Helper macro to define methods in `prelude.isle` within `impl Context for | 
| 42 |  | /// ...` for each backend. These methods are shared amongst all backends. | 
| 43 |  | #[macro_export] | 
| 44 |  | #[doc(hidden)] | 
| 45 |  | macro_rules! isle_lower_prelude_methods { | 
| 46 |  |     () => { | 
| 47 |  |         isle_common_prelude_methods!(); | 
| 48 |  |  | 
| 49 |  |         #[inline] | 
| 50 | 0 |         fn same_value(&mut self, a: Value, b: Value) -> Option<Value> { | 
| 51 | 0 |             if a == b { | 
| 52 | 0 |                 Some(a) | 
| 53 |  |             } else { | 
| 54 | 0 |                 None | 
| 55 |  |             } | 
| 56 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::same_valueUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::same_valueUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::same_value | 
| 57 |  |  | 
| 58 |  |         #[inline] | 
| 59 | 296k |         fn unpack_value_array_2(&mut self, arr: &ValueArray2) -> (Value, Value) { | 
| 60 | 296k |             let [a, b] = *arr; | 
| 61 | 296k |             (a, b) | 
| 62 | 296k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::unpack_value_array_2| Line | Count | Source |  | 59 | 296k |         fn unpack_value_array_2(&mut self, arr: &ValueArray2) -> (Value, Value) { |  | 60 | 296k |             let [a, b] = *arr; |  | 61 | 296k |             (a, b) |  | 62 | 296k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::unpack_value_array_2Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::unpack_value_array_2 | 
| 63 |  |  | 
| 64 |  |         #[inline] | 
| 65 | 0 |         fn pack_value_array_2(&mut self, a: Value, b: Value) -> ValueArray2 { | 
| 66 | 0 |             [a, b] | 
| 67 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::pack_value_array_2Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::pack_value_array_2Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::pack_value_array_2 | 
| 68 |  |  | 
| 69 |  |         #[inline] | 
| 70 | 38.3k |         fn unpack_value_array_3(&mut self, arr: &ValueArray3) -> (Value, Value, Value) { | 
| 71 | 38.3k |             let [a, b, c] = *arr; | 
| 72 | 38.3k |             (a, b, c) | 
| 73 | 38.3k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::unpack_value_array_3| Line | Count | Source |  | 70 | 38.3k |         fn unpack_value_array_3(&mut self, arr: &ValueArray3) -> (Value, Value, Value) { |  | 71 | 38.3k |             let [a, b, c] = *arr; |  | 72 | 38.3k |             (a, b, c) |  | 73 | 38.3k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::unpack_value_array_3Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::unpack_value_array_3 | 
| 74 |  |  | 
| 75 |  |         #[inline] | 
| 76 | 0 |         fn pack_value_array_3(&mut self, a: Value, b: Value, c: Value) -> ValueArray3 { | 
| 77 | 0 |             [a, b, c] | 
| 78 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::pack_value_array_3Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::pack_value_array_3Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::pack_value_array_3 | 
| 79 |  |  | 
| 80 |  |         #[inline] | 
| 81 | 408k |         fn value_reg(&mut self, reg: Reg) -> ValueRegs { | 
| 82 | 408k |             ValueRegs::one(reg) | 
| 83 | 408k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_reg| Line | Count | Source |  | 81 | 408k |         fn value_reg(&mut self, reg: Reg) -> ValueRegs { |  | 82 | 408k |             ValueRegs::one(reg) |  | 83 | 408k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_reg | 
| 84 |  |  | 
| 85 |  |         #[inline] | 
| 86 | 564 |         fn value_regs(&mut self, r1: Reg, r2: Reg) -> ValueRegs { | 
| 87 | 564 |             ValueRegs::two(r1, r2) | 
| 88 | 564 |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_regs| Line | Count | Source |  | 86 | 564 |         fn value_regs(&mut self, r1: Reg, r2: Reg) -> ValueRegs { |  | 87 | 564 |             ValueRegs::two(r1, r2) |  | 88 | 564 |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_regsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_regs | 
| 89 |  |  | 
| 90 |  |         #[inline] | 
| 91 | 0 |         fn value_regs_invalid(&mut self) -> ValueRegs { | 
| 92 | 0 |             ValueRegs::invalid() | 
| 93 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_regs_invalidUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_regs_invalidUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_regs_invalid | 
| 94 |  |  | 
| 95 |  |         #[inline] | 
| 96 | 355k |         fn output_none(&mut self) -> InstOutput { | 
| 97 | 355k |             smallvec::smallvec![] | 
| 98 | 355k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output_none| Line | Count | Source |  | 96 | 355k |         fn output_none(&mut self) -> InstOutput { |  | 97 | 355k |             smallvec::smallvec![] |  | 98 | 355k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::output_noneUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output_none | 
| 99 |  |  | 
| 100 |  |         #[inline] | 
| 101 | 409k |         fn output(&mut self, regs: ValueRegs) -> InstOutput { | 
| 102 | 409k |             smallvec::smallvec![regs] | 
| 103 | 409k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output| Line | Count | Source |  | 101 | 409k |         fn output(&mut self, regs: ValueRegs) -> InstOutput { |  | 102 | 409k |             smallvec::smallvec![regs] |  | 103 | 409k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::outputUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output | 
| 104 |  |  | 
| 105 |  |         #[inline] | 
| 106 | 0 |         fn output_pair(&mut self, r1: ValueRegs, r2: ValueRegs) -> InstOutput { | 
| 107 | 0 |             smallvec::smallvec![r1, r2] | 
| 108 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output_pairUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::output_pairUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output_pair | 
| 109 |  |  | 
| 110 |  |         #[inline] | 
| 111 | 0 |         fn output_builder_new(&mut self) -> InstOutputBuilder { | 
| 112 | 0 |             std::cell::Cell::new(InstOutput::new()) | 
| 113 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output_builder_newUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::output_builder_newUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output_builder_new | 
| 114 |  |  | 
| 115 |  |         #[inline] | 
| 116 | 0 |         fn output_builder_push(&mut self, builder: &InstOutputBuilder, regs: ValueRegs) -> Unit { | 
| 117 | 0 |             let mut vec = builder.take(); | 
| 118 | 0 |             vec.push(regs); | 
| 119 | 0 |             builder.set(vec); | 
| 120 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output_builder_pushUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::output_builder_pushUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output_builder_push | 
| 121 |  |  | 
| 122 |  |         #[inline] | 
| 123 | 0 |         fn output_builder_finish(&mut self, builder: &InstOutputBuilder) -> InstOutput { | 
| 124 | 0 |             builder.take() | 
| 125 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::output_builder_finishUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::output_builder_finishUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::output_builder_finish | 
| 126 |  |  | 
| 127 |  |         #[inline] | 
| 128 | 590k |         fn temp_writable_reg(&mut self, ty: Type) -> WritableReg { | 
| 129 | 590k |             let value_regs = self.lower_ctx.alloc_tmp(ty); | 
| 130 | 590k |             value_regs.only_reg().unwrap() | 
| 131 | 590k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::temp_writable_reg| Line | Count | Source |  | 128 | 590k |         fn temp_writable_reg(&mut self, ty: Type) -> WritableReg { |  | 129 | 590k |             let value_regs = self.lower_ctx.alloc_tmp(ty); |  | 130 | 590k |             value_regs.only_reg().unwrap() |  | 131 | 590k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::temp_writable_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::temp_writable_reg | 
| 132 |  |  | 
| 133 |  |         #[inline] | 
| 134 | 657k |         fn is_valid_reg(&mut self, reg: Reg) -> bool { | 
| 135 | 657k |             use crate::machinst::valueregs::InvalidSentinel; | 
| 136 | 657k |             !reg.is_invalid_sentinel() | 
| 137 | 657k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::is_valid_reg| Line | Count | Source |  | 134 | 657k |         fn is_valid_reg(&mut self, reg: Reg) -> bool { |  | 135 | 657k |             use crate::machinst::valueregs::InvalidSentinel; |  | 136 | 657k |             !reg.is_invalid_sentinel() |  | 137 | 657k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::is_valid_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::is_valid_reg | 
| 138 |  |  | 
| 139 |  |         #[inline] | 
| 140 | 192k |         fn invalid_reg(&mut self) -> Reg { | 
| 141 | 192k |             use crate::machinst::valueregs::InvalidSentinel; | 
| 142 | 192k |             Reg::invalid_sentinel() | 
| 143 | 192k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::invalid_reg| Line | Count | Source |  | 140 | 192k |         fn invalid_reg(&mut self) -> Reg { |  | 141 | 192k |             use crate::machinst::valueregs::InvalidSentinel; |  | 142 | 192k |             Reg::invalid_sentinel() |  | 143 | 192k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::invalid_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::invalid_reg | 
| 144 |  |  | 
| 145 |  |         #[inline] | 
| 146 | 0 |         fn mark_value_used(&mut self, val: Value) { | 
| 147 | 0 |             self.lower_ctx.increment_lowered_uses(val); | 
| 148 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::mark_value_usedUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::mark_value_usedUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::mark_value_used | 
| 149 |  |  | 
| 150 |  |         #[inline] | 
| 151 | 677k |         fn put_in_reg(&mut self, val: Value) -> Reg { | 
| 152 | 677k |             self.lower_ctx.put_value_in_regs(val).only_reg().unwrap() | 
| 153 | 677k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::put_in_reg| Line | Count | Source |  | 151 | 677k |         fn put_in_reg(&mut self, val: Value) -> Reg { |  | 152 | 677k |             self.lower_ctx.put_value_in_regs(val).only_reg().unwrap() |  | 153 | 677k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::put_in_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::put_in_reg | 
| 154 |  |  | 
| 155 |  |         #[inline] | 
| 156 | 13.8k |         fn put_in_regs(&mut self, val: Value) -> ValueRegs { | 
| 157 | 13.8k |             self.lower_ctx.put_value_in_regs(val) | 
| 158 | 13.8k |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::put_in_regs<cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::put_in_regs| Line | Count | Source |  | 156 | 13.8k |         fn put_in_regs(&mut self, val: Value) -> ValueRegs { |  | 157 | 13.8k |             self.lower_ctx.put_value_in_regs(val) |  | 158 | 13.8k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::put_in_regs | 
| 159 |  |  | 
| 160 |  |         #[inline] | 
| 161 | 0 |         fn ensure_in_vreg(&mut self, reg: Reg, ty: Type) -> Reg { | 
| 162 | 0 |             self.lower_ctx.ensure_in_vreg(reg, ty) | 
| 163 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::ensure_in_vregUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::ensure_in_vregUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::ensure_in_vreg | 
| 164 |  |  | 
| 165 |  |         #[inline] | 
| 166 | 13.0k |         fn value_regs_get(&mut self, regs: ValueRegs, i: usize) -> Reg { | 
| 167 | 13.0k |             regs.regs()[i] | 
| 168 | 13.0k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_regs_get| Line | Count | Source |  | 166 | 13.0k |         fn value_regs_get(&mut self, regs: ValueRegs, i: usize) -> Reg { |  | 167 | 13.0k |             regs.regs()[i] |  | 168 | 13.0k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_regs_getUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_regs_get | 
| 169 |  |  | 
| 170 |  |         #[inline] | 
| 171 | 0 |         fn value_regs_len(&mut self, regs: ValueRegs) -> usize { | 
| 172 | 0 |             regs.regs().len() | 
| 173 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_regs_lenUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_regs_lenUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_regs_len | 
| 174 |  |  | 
| 175 |  |         #[inline] | 
| 176 | 398k |         fn value_list_slice(&mut self, list: ValueList) -> ValueSlice { | 
| 177 | 398k |             (list, 0) | 
| 178 | 398k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_list_slice| Line | Count | Source |  | 176 | 398k |         fn value_list_slice(&mut self, list: ValueList) -> ValueSlice { |  | 177 | 398k |             (list, 0) |  | 178 | 398k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_list_sliceUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_list_slice | 
| 179 |  |  | 
| 180 |  |         #[inline] | 
| 181 | 0 |         fn value_slice_empty(&mut self, slice: ValueSlice) -> Option<()> { | 
| 182 | 0 |             let (list, off) = slice; | 
| 183 | 0 |             if off >= list.len(&self.lower_ctx.dfg().value_lists) { | 
| 184 | 0 |                 Some(()) | 
| 185 |  |             } else { | 
| 186 | 0 |                 None | 
| 187 |  |             } | 
| 188 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_slice_emptyUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_slice_emptyUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_slice_empty | 
| 189 |  |  | 
| 190 |  |         #[inline] | 
| 191 | 131k |         fn value_slice_unwrap(&mut self, slice: ValueSlice) -> Option<(Value, ValueSlice)> { | 
| 192 | 131k |             let (list, off) = slice; | 
| 193 | 131k |             if let Some(val) = list.get(off, &self.lower_ctx.dfg().value_lists) { | 
| 194 | 131k |                 Some((val, (list, off + 1))) | 
| 195 |  |             } else { | 
| 196 | 0 |                 None | 
| 197 |  |             } | 
| 198 | 131k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_slice_unwrap| Line | Count | Source |  | 191 | 131k |         fn value_slice_unwrap(&mut self, slice: ValueSlice) -> Option<(Value, ValueSlice)> { |  | 192 | 131k |             let (list, off) = slice; |  | 193 | 131k |             if let Some(val) = list.get(off, &self.lower_ctx.dfg().value_lists) { |  | 194 | 131k |                 Some((val, (list, off + 1))) |  | 195 |  |             } else { |  | 196 | 0 |                 None |  | 197 |  |             } |  | 198 | 131k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_slice_unwrapUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_slice_unwrap | 
| 199 |  |  | 
| 200 |  |         #[inline] | 
| 201 | 99.2k |         fn value_slice_len(&mut self, slice: ValueSlice) -> usize { | 
| 202 | 99.2k |             let (list, off) = slice; | 
| 203 | 99.2k |             list.len(&self.lower_ctx.dfg().value_lists) - off | 
| 204 | 99.2k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_slice_len| Line | Count | Source |  | 201 | 99.2k |         fn value_slice_len(&mut self, slice: ValueSlice) -> usize { |  | 202 | 99.2k |             let (list, off) = slice; |  | 203 | 99.2k |             list.len(&self.lower_ctx.dfg().value_lists) - off |  | 204 | 99.2k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_slice_lenUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_slice_len | 
| 205 |  |  | 
| 206 |  |         #[inline] | 
| 207 | 0 |         fn value_slice_get(&mut self, slice: ValueSlice, idx: usize) -> Value { | 
| 208 | 0 |             let (list, off) = slice; | 
| 209 | 0 |             list.get(off + idx, &self.lower_ctx.dfg().value_lists) | 
| 210 | 0 |                 .unwrap() | 
| 211 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_slice_getUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_slice_getUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_slice_get | 
| 212 |  |  | 
| 213 |  |         #[inline] | 
| 214 | 117k |         fn writable_reg_to_reg(&mut self, r: WritableReg) -> Reg { | 
| 215 | 117k |             r.to_reg() | 
| 216 | 117k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::writable_reg_to_reg| Line | Count | Source |  | 214 | 117k |         fn writable_reg_to_reg(&mut self, r: WritableReg) -> Reg { |  | 215 | 117k |             r.to_reg() |  | 216 | 117k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::writable_reg_to_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::writable_reg_to_reg | 
| 217 |  |  | 
| 218 |  |         #[inline] | 
| 219 | 0 |         fn inst_results(&mut self, inst: Inst) -> ValueSlice { | 
| 220 | 0 |             (self.lower_ctx.dfg().inst_results_list(inst), 0) | 
| 221 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::inst_resultsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::inst_resultsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::inst_results | 
| 222 |  |  | 
| 223 |  |         #[inline] | 
| 224 | 5.99M |         fn first_result(&mut self, inst: Inst) -> Option<Value> { | 
| 225 | 5.99M |             self.lower_ctx.dfg().inst_results(inst).first().copied() | 
| 226 | 5.99M |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::first_result| Line | Count | Source |  | 224 | 5.99M |         fn first_result(&mut self, inst: Inst) -> Option<Value> { |  | 225 | 5.99M |             self.lower_ctx.dfg().inst_results(inst).first().copied() |  | 226 | 5.99M |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::first_resultUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::first_result | 
| 227 |  |  | 
| 228 |  |         #[inline] | 
| 229 | 12.6M |         fn inst_data(&mut self, inst: Inst) -> InstructionData { | 
| 230 | 12.6M |             self.lower_ctx.dfg()[inst] | 
| 231 | 12.6M |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::inst_data| Line | Count | Source |  | 229 | 12.6M |         fn inst_data(&mut self, inst: Inst) -> InstructionData { |  | 230 | 12.6M |             self.lower_ctx.dfg()[inst] |  | 231 | 12.6M |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::inst_dataUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::inst_data | 
| 232 |  |  | 
| 233 |  |         #[inline] | 
| 234 | 4.68M |         fn value_type(&mut self, val: Value) -> Type { | 
| 235 | 4.68M |             self.lower_ctx.dfg().value_type(val) | 
| 236 | 4.68M |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::value_type| Line | Count | Source |  | 234 | 4.68M |         fn value_type(&mut self, val: Value) -> Type { |  | 235 | 4.68M |             self.lower_ctx.dfg().value_type(val) |  | 236 | 4.68M |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::value_typeUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::value_type | 
| 237 |  |  | 
| 238 |  |         #[inline] | 
| 239 | 814k |         fn def_inst(&mut self, val: Value) -> Option<Inst> { | 
| 240 | 814k |             self.lower_ctx.dfg().value_def(val).inst() | 
| 241 | 814k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::def_inst| Line | Count | Source |  | 239 | 814k |         fn def_inst(&mut self, val: Value) -> Option<Inst> { |  | 240 | 814k |             self.lower_ctx.dfg().value_def(val).inst() |  | 241 | 814k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::def_instUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::def_inst | 
| 242 |  |  | 
| 243 | 0 |         fn zero_value(&mut self, value: Value) -> Option<Value> { | 
| 244 | 0 |             let insn = self.def_inst(value); | 
| 245 | 0 |             if insn.is_some() { | 
| 246 | 0 |                 let insn = insn.unwrap(); | 
| 247 | 0 |                 let inst_data = self.lower_ctx.data(insn); | 
| 248 | 0 |                 match inst_data { | 
| 249 |  |                     InstructionData::Unary { | 
| 250 |  |                         opcode: Opcode::Splat, | 
| 251 | 0 |                         arg, | 
| 252 | 0 |                     } => { | 
| 253 | 0 |                         let arg = arg.clone(); | 
| 254 | 0 |                         return self.zero_value(arg); | 
| 255 |  |                     } | 
| 256 |  |                     InstructionData::UnaryConst { | 
| 257 |  |                         opcode: Opcode::Vconst, | 
| 258 | 0 |                         constant_handle, | 
| 259 | 0 |                     } => { | 
| 260 | 0 |                         let constant_data = | 
| 261 | 0 |                             self.lower_ctx.get_constant_data(*constant_handle).clone(); | 
| 262 | 0 |                         if constant_data.into_vec().iter().any(|&x| x != 0) {Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::zero_value::{closure#0}Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::zero_value::{closure#0}Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::zero_value::{closure#0} | 
| 263 | 0 |                             return None; | 
| 264 |  |                         } else { | 
| 265 | 0 |                             return Some(value); | 
| 266 |  |                         } | 
| 267 |  |                     } | 
| 268 | 0 |                     InstructionData::UnaryImm { imm, .. } => { | 
| 269 | 0 |                         if imm.bits() == 0 { | 
| 270 | 0 |                             return Some(value); | 
| 271 |  |                         } else { | 
| 272 | 0 |                             return None; | 
| 273 |  |                         } | 
| 274 |  |                     } | 
| 275 | 0 |                     InstructionData::UnaryIeee32 { imm, .. } => { | 
| 276 | 0 |                         if imm.bits() == 0 { | 
| 277 | 0 |                             return Some(value); | 
| 278 |  |                         } else { | 
| 279 | 0 |                             return None; | 
| 280 |  |                         } | 
| 281 |  |                     } | 
| 282 | 0 |                     InstructionData::UnaryIeee64 { imm, .. } => { | 
| 283 | 0 |                         if imm.bits() == 0 { | 
| 284 | 0 |                             return Some(value); | 
| 285 |  |                         } else { | 
| 286 | 0 |                             return None; | 
| 287 |  |                         } | 
| 288 |  |                     } | 
| 289 | 0 |                     _ => None, | 
| 290 |  |                 } | 
| 291 |  |             } else { | 
| 292 | 0 |                 None | 
| 293 |  |             } | 
| 294 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::zero_valueUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::zero_valueUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::zero_value | 
| 295 |  |  | 
| 296 | 0 |         fn avoid_div_traps(&mut self, _: Type) -> Option<()> { | 
| 297 | 0 |             if self.flags.avoid_div_traps() { | 
| 298 | 0 |                 Some(()) | 
| 299 |  |             } else { | 
| 300 | 0 |                 None | 
| 301 |  |             } | 
| 302 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::avoid_div_trapsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::avoid_div_trapsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::avoid_div_traps | 
| 303 |  |  | 
| 304 |  |         #[inline] | 
| 305 | 229k |         fn tls_model(&mut self, _: Type) -> TlsModel { | 
| 306 | 229k |             self.flags.tls_model() | 
| 307 | 229k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::tls_model| Line | Count | Source |  | 305 | 229k |         fn tls_model(&mut self, _: Type) -> TlsModel { |  | 306 | 229k |             self.flags.tls_model() |  | 307 | 229k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::tls_modelUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::tls_model | 
| 308 |  |  | 
| 309 |  |         #[inline] | 
| 310 | 0 |         fn tls_model_is_elf_gd(&mut self) -> Option<()> { | 
| 311 | 0 |             if self.flags.tls_model() == TlsModel::ElfGd { | 
| 312 | 0 |                 Some(()) | 
| 313 |  |             } else { | 
| 314 | 0 |                 None | 
| 315 |  |             } | 
| 316 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::tls_model_is_elf_gdUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::tls_model_is_elf_gdUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::tls_model_is_elf_gd | 
| 317 |  |  | 
| 318 |  |         #[inline] | 
| 319 | 0 |         fn tls_model_is_macho(&mut self) -> Option<()> { | 
| 320 | 0 |             if self.flags.tls_model() == TlsModel::Macho { | 
| 321 | 0 |                 Some(()) | 
| 322 |  |             } else { | 
| 323 | 0 |                 None | 
| 324 |  |             } | 
| 325 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::tls_model_is_machoUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::tls_model_is_machoUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::tls_model_is_macho | 
| 326 |  |  | 
| 327 |  |         #[inline] | 
| 328 | 0 |         fn tls_model_is_coff(&mut self) -> Option<()> { | 
| 329 | 0 |             if self.flags.tls_model() == TlsModel::Coff { | 
| 330 | 0 |                 Some(()) | 
| 331 |  |             } else { | 
| 332 | 0 |                 None | 
| 333 |  |             } | 
| 334 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::tls_model_is_coffUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::tls_model_is_coffUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::tls_model_is_coff | 
| 335 |  |  | 
| 336 |  |         #[inline] | 
| 337 | 0 |         fn preserve_frame_pointers(&mut self) -> Option<()> { | 
| 338 | 0 |             if self.flags.preserve_frame_pointers() { | 
| 339 | 0 |                 Some(()) | 
| 340 |  |             } else { | 
| 341 | 0 |                 None | 
| 342 |  |             } | 
| 343 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::preserve_frame_pointersUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::preserve_frame_pointersUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::preserve_frame_pointers | 
| 344 |  |  | 
| 345 |  |         #[inline] | 
| 346 | 26.7k |         fn func_ref_data(&mut self, func_ref: FuncRef) -> (SigRef, ExternalName, RelocDistance) { | 
| 347 | 26.7k |             let funcdata = &self.lower_ctx.dfg().ext_funcs[func_ref]; | 
| 348 | 26.7k |             ( | 
| 349 | 26.7k |                 funcdata.signature, | 
| 350 | 26.7k |                 funcdata.name.clone(), | 
| 351 | 26.7k |                 funcdata.reloc_distance(), | 
| 352 | 26.7k |             ) | 
| 353 | 26.7k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::func_ref_data| Line | Count | Source |  | 346 | 26.7k |         fn func_ref_data(&mut self, func_ref: FuncRef) -> (SigRef, ExternalName, RelocDistance) { |  | 347 | 26.7k |             let funcdata = &self.lower_ctx.dfg().ext_funcs[func_ref]; |  | 348 | 26.7k |             ( |  | 349 | 26.7k |                 funcdata.signature, |  | 350 | 26.7k |                 funcdata.name.clone(), |  | 351 | 26.7k |                 funcdata.reloc_distance(), |  | 352 | 26.7k |             ) |  | 353 | 26.7k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::func_ref_dataUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::func_ref_data | 
| 354 |  |  | 
| 355 |  |         #[inline] | 
| 356 | 0 |         fn box_external_name(&mut self, extname: ExternalName) -> BoxExternalName { | 
| 357 | 0 |             Box::new(extname) | 
| 358 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::box_external_nameUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::box_external_nameUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::box_external_name | 
| 359 |  |  | 
| 360 |  |         #[inline] | 
| 361 | 0 |         fn symbol_value_data( | 
| 362 | 0 |             &mut self, | 
| 363 | 0 |             global_value: GlobalValue, | 
| 364 | 0 |         ) -> Option<(ExternalName, RelocDistance, i64)> { | 
| 365 | 0 |             let (name, reloc, offset) = self.lower_ctx.symbol_value_data(global_value)?; | 
| 366 | 0 |             Some((name.clone(), reloc, offset)) | 
| 367 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::symbol_value_dataUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::symbol_value_dataUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::symbol_value_data | 
| 368 |  |  | 
| 369 |  |         #[inline] | 
| 370 | 0 |         fn reloc_distance_near(&mut self, dist: RelocDistance) -> Option<()> { | 
| 371 | 0 |             if dist == RelocDistance::Near { | 
| 372 | 0 |                 Some(()) | 
| 373 |  |             } else { | 
| 374 | 0 |                 None | 
| 375 |  |             } | 
| 376 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::reloc_distance_nearUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::reloc_distance_nearUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::reloc_distance_near | 
| 377 |  |  | 
| 378 |  |         #[inline] | 
| 379 | 0 |         fn u128_from_immediate(&mut self, imm: Immediate) -> Option<u128> { | 
| 380 | 0 |             let bytes = self.lower_ctx.get_immediate_data(imm).as_slice(); | 
| 381 | 0 |             Some(u128::from_le_bytes(bytes.try_into().ok()?)) | 
| 382 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::u128_from_immediateUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::u128_from_immediateUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::u128_from_immediate | 
| 383 |  |  | 
| 384 |  |         #[inline] | 
| 385 | 0 |         fn vec_mask_from_immediate(&mut self, imm: Immediate) -> Option<VecMask> { | 
| 386 | 0 |             let data = self.lower_ctx.get_immediate_data(imm); | 
| 387 | 0 |             if data.len() == 16 { | 
| 388 | 0 |                 Some(Vec::from(data.as_slice())) | 
| 389 |  |             } else { | 
| 390 | 0 |                 None | 
| 391 |  |             } | 
| 392 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::vec_mask_from_immediateUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::vec_mask_from_immediateUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::vec_mask_from_immediate | 
| 393 |  |  | 
| 394 |  |         #[inline] | 
| 395 | 0 |         fn u64_from_constant(&mut self, constant: Constant) -> Option<u64> { | 
| 396 | 0 |             let bytes = self.lower_ctx.get_constant_data(constant).as_slice(); | 
| 397 | 0 |             Some(u64::from_le_bytes(bytes.try_into().ok()?)) | 
| 398 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::u64_from_constantUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::u64_from_constantUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::u64_from_constant | 
| 399 |  |  | 
| 400 |  |         #[inline] | 
| 401 | 0 |         fn u128_from_constant(&mut self, constant: Constant) -> Option<u128> { | 
| 402 | 0 |             let bytes = self.lower_ctx.get_constant_data(constant).as_slice(); | 
| 403 | 0 |             Some(u128::from_le_bytes(bytes.try_into().ok()?)) | 
| 404 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::u128_from_constantUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::u128_from_constantUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::u128_from_constant | 
| 405 |  |  | 
| 406 |  |         #[inline] | 
| 407 | 8.69k |         fn emit_u64_le_const(&mut self, value: u64) -> VCodeConstant { | 
| 408 | 8.69k |             let data = VCodeConstantData::U64(value.to_le_bytes()); | 
| 409 | 8.69k |             self.lower_ctx.use_constant(data) | 
| 410 | 8.69k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::emit_u64_le_const| Line | Count | Source |  | 407 | 8.69k |         fn emit_u64_le_const(&mut self, value: u64) -> VCodeConstant { |  | 408 | 8.69k |             let data = VCodeConstantData::U64(value.to_le_bytes()); |  | 409 | 8.69k |             self.lower_ctx.use_constant(data) |  | 410 | 8.69k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::emit_u64_le_constUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::emit_u64_le_const | 
| 411 |  |  | 
| 412 |  |         #[inline] | 
| 413 | 33.8k |         fn emit_u128_le_const(&mut self, value: u128) -> VCodeConstant { | 
| 414 | 33.8k |             let data = VCodeConstantData::Generated(value.to_le_bytes().as_slice().into()); | 
| 415 | 33.8k |             self.lower_ctx.use_constant(data) | 
| 416 | 33.8k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::emit_u128_le_const| Line | Count | Source |  | 413 | 33.8k |         fn emit_u128_le_const(&mut self, value: u128) -> VCodeConstant { |  | 414 | 33.8k |             let data = VCodeConstantData::Generated(value.to_le_bytes().as_slice().into()); |  | 415 | 33.8k |             self.lower_ctx.use_constant(data) |  | 416 | 33.8k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::emit_u128_le_constUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::emit_u128_le_const | 
| 417 |  |  | 
| 418 |  |         #[inline] | 
| 419 | 0 |         fn const_to_vconst(&mut self, constant: Constant) -> VCodeConstant { | 
| 420 | 0 |             self.lower_ctx.use_constant(VCodeConstantData::Pool( | 
| 421 | 0 |                 constant, | 
| 422 | 0 |                 self.lower_ctx.get_constant_data(constant).clone(), | 
| 423 | 0 |             )) | 
| 424 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::const_to_vconstUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::const_to_vconstUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::const_to_vconst | 
| 425 |  |  | 
| 426 | 0 |         fn only_writable_reg(&mut self, regs: WritableValueRegs) -> Option<WritableReg> { | 
| 427 | 0 |             regs.only_reg() | 
| 428 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::only_writable_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::only_writable_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::only_writable_reg | 
| 429 |  |  | 
| 430 | 0 |         fn writable_regs_get(&mut self, regs: WritableValueRegs, idx: usize) -> WritableReg { | 
| 431 | 0 |             regs.regs()[idx] | 
| 432 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::writable_regs_getUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::writable_regs_getUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::writable_regs_get | 
| 433 |  |  | 
| 434 | 0 |         fn abi_num_args(&mut self, abi: &Sig) -> usize { | 
| 435 | 0 |             self.lower_ctx.sigs().num_args(*abi) | 
| 436 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_num_argsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_num_argsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_num_args | 
| 437 |  |  | 
| 438 | 0 |         fn abi_get_arg(&mut self, abi: &Sig, idx: usize) -> ABIArg { | 
| 439 | 0 |             self.lower_ctx.sigs().get_arg(*abi, idx) | 
| 440 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_get_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_get_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_get_arg | 
| 441 |  |  | 
| 442 | 0 |         fn abi_num_rets(&mut self, abi: &Sig) -> usize { | 
| 443 | 0 |             self.lower_ctx.sigs().num_rets(*abi) | 
| 444 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_num_retsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_num_retsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_num_rets | 
| 445 |  |  | 
| 446 | 0 |         fn abi_get_ret(&mut self, abi: &Sig, idx: usize) -> ABIArg { | 
| 447 | 0 |             self.lower_ctx.sigs().get_ret(*abi, idx) | 
| 448 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_get_retUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_get_retUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_get_ret | 
| 449 |  |  | 
| 450 | 0 |         fn abi_ret_arg(&mut self, abi: &Sig) -> Option<ABIArg> { | 
| 451 | 0 |             self.lower_ctx.sigs().get_ret_arg(*abi) | 
| 452 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_ret_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_ret_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_ret_arg | 
| 453 |  |  | 
| 454 | 0 |         fn abi_no_ret_arg(&mut self, abi: &Sig) -> Option<()> { | 
| 455 | 0 |             if let Some(_) = self.lower_ctx.sigs().get_ret_arg(*abi) { | 
| 456 | 0 |                 None | 
| 457 |  |             } else { | 
| 458 | 0 |                 Some(()) | 
| 459 |  |             } | 
| 460 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_no_ret_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_no_ret_argUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_no_ret_arg | 
| 461 |  |  | 
| 462 | 0 |         fn abi_sized_stack_arg_space(&mut self, abi: &Sig) -> i64 { | 
| 463 | 0 |             self.lower_ctx.sigs()[*abi].sized_stack_arg_space() | 
| 464 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_sized_stack_arg_spaceUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_sized_stack_arg_spaceUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_sized_stack_arg_space | 
| 465 |  |  | 
| 466 | 0 |         fn abi_sized_stack_ret_space(&mut self, abi: &Sig) -> i64 { | 
| 467 | 0 |             self.lower_ctx.sigs()[*abi].sized_stack_ret_space() | 
| 468 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_sized_stack_ret_spaceUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_sized_stack_ret_spaceUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_sized_stack_ret_space | 
| 469 |  |  | 
| 470 | 0 |         fn abi_arg_only_slot(&mut self, arg: &ABIArg) -> Option<ABIArgSlot> { | 
| 471 | 0 |             match arg { | 
| 472 | 0 |                 &ABIArg::Slots { ref slots, .. } => { | 
| 473 | 0 |                     if slots.len() == 1 { | 
| 474 | 0 |                         Some(slots[0]) | 
| 475 |  |                     } else { | 
| 476 | 0 |                         None | 
| 477 |  |                     } | 
| 478 |  |                 } | 
| 479 | 0 |                 _ => None, | 
| 480 |  |             } | 
| 481 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_arg_only_slotUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_arg_only_slotUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_arg_only_slot | 
| 482 |  |  | 
| 483 | 0 |         fn abi_arg_struct_pointer(&mut self, arg: &ABIArg) -> Option<(ABIArgSlot, i64, u64)> { | 
| 484 | 0 |             match arg { | 
| 485 |  |                 &ABIArg::StructArg { | 
| 486 | 0 |                     pointer, | 
| 487 | 0 |                     offset, | 
| 488 | 0 |                     size, | 
| 489 |  |                     .. | 
| 490 |  |                 } => { | 
| 491 | 0 |                     if let Some(pointer) = pointer { | 
| 492 | 0 |                         Some((pointer, offset, size)) | 
| 493 |  |                     } else { | 
| 494 | 0 |                         None | 
| 495 |  |                     } | 
| 496 |  |                 } | 
| 497 | 0 |                 _ => None, | 
| 498 |  |             } | 
| 499 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_arg_struct_pointerUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_arg_struct_pointerUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_arg_struct_pointer | 
| 500 |  |  | 
| 501 | 0 |         fn abi_arg_implicit_pointer(&mut self, arg: &ABIArg) -> Option<(ABIArgSlot, i64, Type)> { | 
| 502 | 0 |             match arg { | 
| 503 |  |                 &ABIArg::ImplicitPtrArg { | 
| 504 | 0 |                     pointer, | 
| 505 | 0 |                     offset, | 
| 506 | 0 |                     ty, | 
| 507 | 0 |                     .. | 
| 508 | 0 |                 } => Some((pointer, offset, ty)), | 
| 509 | 0 |                 _ => None, | 
| 510 |  |             } | 
| 511 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_arg_implicit_pointerUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_arg_implicit_pointerUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_arg_implicit_pointer | 
| 512 |  |  | 
| 513 | 0 |         fn abi_stackslot_addr( | 
| 514 | 0 |             &mut self, | 
| 515 | 0 |             dst: WritableReg, | 
| 516 | 0 |             stack_slot: StackSlot, | 
| 517 | 0 |             offset: Offset32, | 
| 518 | 0 |         ) -> MInst { | 
| 519 | 0 |             let offset = u32::try_from(i32::from(offset)).unwrap(); | 
| 520 | 0 |             self.lower_ctx | 
| 521 | 0 |                 .abi() | 
| 522 | 0 |                 .sized_stackslot_addr(stack_slot, offset, dst) | 
| 523 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_stackslot_addrUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_stackslot_addrUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_stackslot_addr | 
| 524 |  |  | 
| 525 | 0 |         fn abi_dynamic_stackslot_addr( | 
| 526 | 0 |             &mut self, | 
| 527 | 0 |             dst: WritableReg, | 
| 528 | 0 |             stack_slot: DynamicStackSlot, | 
| 529 | 0 |         ) -> MInst { | 
| 530 | 0 |             assert!(self | 
| 531 | 0 |                 .lower_ctx | 
| 532 | 0 |                 .abi() | 
| 533 | 0 |                 .dynamic_stackslot_offsets() | 
| 534 | 0 |                 .is_valid(stack_slot)); | 
| 535 | 0 |             self.lower_ctx.abi().dynamic_stackslot_addr(stack_slot, dst) | 
| 536 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::abi_dynamic_stackslot_addrUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::abi_dynamic_stackslot_addrUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::abi_dynamic_stackslot_addr | 
| 537 |  |  | 
| 538 | 0 |         fn real_reg_to_reg(&mut self, reg: RealReg) -> Reg { | 
| 539 | 0 |             Reg::from(reg) | 
| 540 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::real_reg_to_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::real_reg_to_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::real_reg_to_reg | 
| 541 |  |  | 
| 542 | 0 |         fn real_reg_to_writable_reg(&mut self, reg: RealReg) -> WritableReg { | 
| 543 | 0 |             Writable::from_reg(Reg::from(reg)) | 
| 544 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::real_reg_to_writable_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::real_reg_to_writable_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::real_reg_to_writable_reg | 
| 545 |  |  | 
| 546 | 0 |         fn is_sinkable_inst(&mut self, val: Value) -> Option<Inst> { | 
| 547 | 0 |             let input = self.lower_ctx.get_value_as_source_or_const(val); | 
| 548 |  |  | 
| 549 | 0 |             if let InputSourceInst::UniqueUse(inst, _) = input.inst { | 
| 550 | 0 |                 Some(inst) | 
| 551 |  |             } else { | 
| 552 | 0 |                 None | 
| 553 |  |             } | 
| 554 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::is_sinkable_instUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::is_sinkable_instUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::is_sinkable_inst | 
| 555 |  |  | 
| 556 |  |         #[inline] | 
| 557 | 0 |         fn sink_inst(&mut self, inst: Inst) { | 
| 558 | 0 |             self.lower_ctx.sink_inst(inst); | 
| 559 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::sink_instUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::sink_instUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::sink_inst | 
| 560 |  |  | 
| 561 |  |         #[inline] | 
| 562 | 0 |         fn preg_to_reg(&mut self, preg: PReg) -> Reg { | 
| 563 | 0 |             preg.into() | 
| 564 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::preg_to_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::preg_to_regUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::preg_to_reg | 
| 565 |  |  | 
| 566 |  |         #[inline] | 
| 567 | 0 |         fn gen_move(&mut self, ty: Type, dst: WritableReg, src: Reg) -> MInst { | 
| 568 | 0 |             MInst::gen_move(dst, src, ty) | 
| 569 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::gen_moveUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::gen_moveUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::gen_move | 
| 570 |  |  | 
| 571 |  |         #[inline] | 
| 572 | 5.71k |         fn intcc_reverse(&mut self, cc: &IntCC) -> IntCC { | 
| 573 | 5.71k |             cc.reverse() | 
| 574 | 5.71k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::intcc_reverse| Line | Count | Source |  | 572 | 5.71k |         fn intcc_reverse(&mut self, cc: &IntCC) -> IntCC { |  | 573 | 5.71k |             cc.reverse() |  | 574 | 5.71k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::intcc_reverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::intcc_reverse | 
| 575 |  |  | 
| 576 |  |         #[inline] | 
| 577 | 0 |         fn intcc_inverse(&mut self, cc: &IntCC) -> IntCC { | 
| 578 | 0 |             cc.inverse() | 
| 579 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::intcc_inverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::intcc_inverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::intcc_inverse | 
| 580 |  |  | 
| 581 |  |         #[inline] | 
| 582 | 0 |         fn floatcc_reverse(&mut self, cc: &FloatCC) -> FloatCC { | 
| 583 | 0 |             cc.reverse() | 
| 584 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::floatcc_reverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::floatcc_reverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::floatcc_reverse | 
| 585 |  |  | 
| 586 |  |         #[inline] | 
| 587 | 0 |         fn floatcc_inverse(&mut self, cc: &FloatCC) -> FloatCC { | 
| 588 | 0 |             cc.inverse() | 
| 589 | 0 |         } Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::floatcc_inverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::floatcc_inverseUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::floatcc_inverse | 
| 590 |  |  | 
| 591 |  |         /// Generate the return instruction. | 
| 592 | 99.2k |         fn gen_return(&mut self, (list, off): ValueSlice) { | 
| 593 | 99.2k |             let rets = (off..list.len(&self.lower_ctx.dfg().value_lists)) | 
| 594 | 99.2k |                 .map(|ix| { | 
| 595 | 1.35k |                     let val = list.get(ix, &self.lower_ctx.dfg().value_lists).unwrap(); | 
| 596 | 1.35k |                     self.put_in_regs(val) | 
| 597 | 99.2k |                 }) <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::gen_return::{closure#0}| Line | Count | Source |  | 594 | 1.35k |                 .map(|ix| { |  | 595 | 1.35k |                     let val = list.get(ix, &self.lower_ctx.dfg().value_lists).unwrap(); |  | 596 | 1.35k |                     self.put_in_regs(val) |  | 597 | 1.35k |                 }) | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::gen_return::{closure#0}Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::gen_return::{closure#0} | 
| 598 | 99.2k |                 .collect(); | 
| 599 | 99.2k |             self.lower_ctx.gen_return(rets); | 
| 600 | 99.2k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::gen_return| Line | Count | Source |  | 592 | 99.2k |         fn gen_return(&mut self, (list, off): ValueSlice) { |  | 593 | 99.2k |             let rets = (off..list.len(&self.lower_ctx.dfg().value_lists)) |  | 594 | 99.2k |                 .map(|ix| { |  | 595 |  |                     let val = list.get(ix, &self.lower_ctx.dfg().value_lists).unwrap(); |  | 596 |  |                     self.put_in_regs(val) |  | 597 | 99.2k |                 }) |  | 598 | 99.2k |                 .collect(); |  | 599 | 99.2k |             self.lower_ctx.gen_return(rets); |  | 600 | 99.2k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::gen_returnUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::gen_return | 
| 601 |  |     }; | 
| 602 |  | } | 
| 603 |  |  | 
| 604 |  | /// Helpers specifically for machines that use ABICaller. | 
| 605 |  | #[macro_export] | 
| 606 |  | #[doc(hidden)] | 
| 607 |  | macro_rules! isle_prelude_caller_methods { | 
| 608 |  |     ($abispec:ty, $abicaller:ty) => { | 
| 609 | 26.7k |         fn gen_call( | 
| 610 | 26.7k |             &mut self, | 
| 611 | 26.7k |             sig_ref: SigRef, | 
| 612 | 26.7k |             extname: ExternalName, | 
| 613 | 26.7k |             dist: RelocDistance, | 
| 614 | 26.7k |             args @ (inputs, off): ValueSlice, | 
| 615 | 26.7k |         ) -> InstOutput { | 
| 616 | 26.7k |             let caller_conv = self.lower_ctx.abi().call_conv(self.lower_ctx.sigs()); | 
| 617 | 26.7k |             let sig = &self.lower_ctx.dfg().signatures[sig_ref]; | 
| 618 | 26.7k |             let num_rets = sig.returns.len(); | 
| 619 | 26.7k |             let abi = self.lower_ctx.sigs().abi_sig_for_sig_ref(sig_ref); | 
| 620 | 26.7k |             let caller = <$abicaller>::from_func( | 
| 621 | 26.7k |                 self.lower_ctx.sigs(), | 
| 622 | 26.7k |                 sig_ref, | 
| 623 | 26.7k |                 &extname, | 
| 624 | 26.7k |                 dist, | 
| 625 | 26.7k |                 caller_conv, | 
| 626 | 26.7k |                 self.flags.clone(), | 
| 627 | 26.7k |             ) | 
| 628 | 26.7k |             .unwrap(); | 
| 629 | 26.7k |  | 
| 630 | 26.7k |             assert_eq!( | 
| 631 | 26.7k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, | 
| 632 | 26.7k |                 sig.params.len() | 
| 633 | 26.7k |             ); | 
| 634 |  |  | 
| 635 | 26.7k |             self.gen_call_common(abi, num_rets, caller, args) | 
| 636 | 26.7k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::gen_call| Line | Count | Source |  | 609 | 26.7k |         fn gen_call( |  | 610 | 26.7k |             &mut self, |  | 611 | 26.7k |             sig_ref: SigRef, |  | 612 | 26.7k |             extname: ExternalName, |  | 613 | 26.7k |             dist: RelocDistance, |  | 614 | 26.7k |             args @ (inputs, off): ValueSlice, |  | 615 | 26.7k |         ) -> InstOutput { |  | 616 | 26.7k |             let caller_conv = self.lower_ctx.abi().call_conv(self.lower_ctx.sigs()); |  | 617 | 26.7k |             let sig = &self.lower_ctx.dfg().signatures[sig_ref]; |  | 618 | 26.7k |             let num_rets = sig.returns.len(); |  | 619 | 26.7k |             let abi = self.lower_ctx.sigs().abi_sig_for_sig_ref(sig_ref); |  | 620 | 26.7k |             let caller = <$abicaller>::from_func( |  | 621 | 26.7k |                 self.lower_ctx.sigs(), |  | 622 | 26.7k |                 sig_ref, |  | 623 | 26.7k |                 &extname, |  | 624 | 26.7k |                 dist, |  | 625 | 26.7k |                 caller_conv, |  | 626 | 26.7k |                 self.flags.clone(), |  | 627 | 26.7k |             ) |  | 628 | 26.7k |             .unwrap(); |  | 629 | 26.7k |  |  | 630 | 26.7k |             assert_eq!( |  | 631 | 26.7k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, |  | 632 | 26.7k |                 sig.params.len() |  | 633 | 26.7k |             ); |  | 634 |  |  |  | 635 | 26.7k |             self.gen_call_common(abi, num_rets, caller, args) |  | 636 | 26.7k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::gen_callUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::gen_call | 
| 637 |  |  | 
| 638 | 77.9k |         fn gen_call_indirect( | 
| 639 | 77.9k |             &mut self, | 
| 640 | 77.9k |             sig_ref: SigRef, | 
| 641 | 77.9k |             val: Value, | 
| 642 | 77.9k |             args @ (inputs, off): ValueSlice, | 
| 643 | 77.9k |         ) -> InstOutput { | 
| 644 | 77.9k |             let caller_conv = self.lower_ctx.abi().call_conv(self.lower_ctx.sigs()); | 
| 645 | 77.9k |             let ptr = self.put_in_reg(val); | 
| 646 | 77.9k |             let sig = &self.lower_ctx.dfg().signatures[sig_ref]; | 
| 647 | 77.9k |             let num_rets = sig.returns.len(); | 
| 648 | 77.9k |             let abi = self.lower_ctx.sigs().abi_sig_for_sig_ref(sig_ref); | 
| 649 | 77.9k |             let caller = <$abicaller>::from_ptr( | 
| 650 | 77.9k |                 self.lower_ctx.sigs(), | 
| 651 | 77.9k |                 sig_ref, | 
| 652 | 77.9k |                 ptr, | 
| 653 | 77.9k |                 Opcode::CallIndirect, | 
| 654 | 77.9k |                 caller_conv, | 
| 655 | 77.9k |                 self.flags.clone(), | 
| 656 | 77.9k |             ) | 
| 657 | 77.9k |             .unwrap(); | 
| 658 | 77.9k |  | 
| 659 | 77.9k |             assert_eq!( | 
| 660 | 77.9k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, | 
| 661 | 77.9k |                 sig.params.len() | 
| 662 | 77.9k |             ); | 
| 663 |  |  | 
| 664 | 77.9k |             self.gen_call_common(abi, num_rets, caller, args) | 
| 665 | 77.9k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6> as cranelift_codegen::isa::x64::lower::isle::generated_code::Context>::gen_call_indirect| Line | Count | Source |  | 638 | 77.9k |         fn gen_call_indirect( |  | 639 | 77.9k |             &mut self, |  | 640 | 77.9k |             sig_ref: SigRef, |  | 641 | 77.9k |             val: Value, |  | 642 | 77.9k |             args @ (inputs, off): ValueSlice, |  | 643 | 77.9k |         ) -> InstOutput { |  | 644 | 77.9k |             let caller_conv = self.lower_ctx.abi().call_conv(self.lower_ctx.sigs()); |  | 645 | 77.9k |             let ptr = self.put_in_reg(val); |  | 646 | 77.9k |             let sig = &self.lower_ctx.dfg().signatures[sig_ref]; |  | 647 | 77.9k |             let num_rets = sig.returns.len(); |  | 648 | 77.9k |             let abi = self.lower_ctx.sigs().abi_sig_for_sig_ref(sig_ref); |  | 649 | 77.9k |             let caller = <$abicaller>::from_ptr( |  | 650 | 77.9k |                 self.lower_ctx.sigs(), |  | 651 | 77.9k |                 sig_ref, |  | 652 | 77.9k |                 ptr, |  | 653 | 77.9k |                 Opcode::CallIndirect, |  | 654 | 77.9k |                 caller_conv, |  | 655 | 77.9k |                 self.flags.clone(), |  | 656 | 77.9k |             ) |  | 657 | 77.9k |             .unwrap(); |  | 658 | 77.9k |  |  | 659 | 77.9k |             assert_eq!( |  | 660 | 77.9k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, |  | 661 | 77.9k |                 sig.params.len() |  | 662 | 77.9k |             ); |  | 663 |  |  |  | 664 | 77.9k |             self.gen_call_common(abi, num_rets, caller, args) |  | 665 | 77.9k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6> as cranelift_codegen::isa::aarch64::lower::isle::generated_code::Context>::gen_call_indirectUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6> as cranelift_codegen::isa::riscv64::lower::isle::generated_code::Context>::gen_call_indirect | 
| 666 |  |     }; | 
| 667 |  | } | 
| 668 |  |  | 
| 669 |  | /// Helpers for the above ISLE prelude implementations. Meant to go | 
| 670 |  | /// inside the `impl` for the context type, not the trait impl. | 
| 671 |  | #[macro_export] | 
| 672 |  | #[doc(hidden)] | 
| 673 |  | macro_rules! isle_prelude_method_helpers { | 
| 674 |  |     ($abicaller:ty) => { | 
| 675 | 104k |         fn gen_call_common( | 
| 676 | 104k |             &mut self, | 
| 677 | 104k |             abi: Sig, | 
| 678 | 104k |             num_rets: usize, | 
| 679 | 104k |             mut caller: $abicaller, | 
| 680 | 104k |             (inputs, off): ValueSlice, | 
| 681 | 104k |         ) -> InstOutput { | 
| 682 | 104k |             caller.emit_stack_pre_adjust(self.lower_ctx); | 
| 683 | 104k |  | 
| 684 | 104k |             let num_args = self.lower_ctx.sigs().num_args(abi); | 
| 685 | 104k |  | 
| 686 | 104k |             assert_eq!( | 
| 687 | 104k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, | 
| 688 | 104k |                 num_args | 
| 689 | 104k |             ); | 
| 690 | 104k |             let mut arg_regs = vec![]; | 
| 691 | 211k |             for i in 0..num_args { | 
| 692 | 211k |                 let input = inputs | 
| 693 | 211k |                     .get(off + i, &self.lower_ctx.dfg().value_lists) | 
| 694 | 211k |                     .unwrap(); | 
| 695 | 211k |                 arg_regs.push(self.lower_ctx.put_value_in_regs(input)); | 
| 696 | 211k |             } | 
| 697 | 211k |             for (i, arg_regs) in arg_regs.iter().enumerate() { | 
| 698 | 211k |                 caller.emit_copy_regs_to_buffer(self.lower_ctx, i, *arg_regs); | 
| 699 | 211k |             } | 
| 700 | 211k |             for (i, arg_regs) in arg_regs.iter().enumerate() { | 
| 701 | 211k |                 for inst in caller.gen_arg(self.lower_ctx, i, *arg_regs) { | 
| 702 | 5.27k |                     self.lower_ctx.emit(inst); | 
| 703 | 5.27k |                 } | 
| 704 |  |             } | 
| 705 |  |  | 
| 706 |  |             // Handle retvals prior to emitting call, so the | 
| 707 |  |             // constraints are on the call instruction; but buffer the | 
| 708 |  |             // instructions till after the call. | 
| 709 | 104k |             let mut outputs = InstOutput::new(); | 
| 710 | 104k |             let mut retval_insts: crate::machinst::abi::SmallInstVec<_> = smallvec::smallvec![]; | 
| 711 |  |             // We take the *last* `num_rets` returns of the sig: | 
| 712 |  |             // this skips a StructReturn, if any, that is present. | 
| 713 | 104k |             let sigdata_num_rets = self.lower_ctx.sigs().num_rets(abi); | 
| 714 | 104k |             debug_assert!(num_rets <= sigdata_num_rets); | 
| 715 | 104k |             for i in (sigdata_num_rets - num_rets)..sigdata_num_rets { | 
| 716 | 49.6k |                 // Borrow `sigdata` again so we don't hold a `self` | 
| 717 | 49.6k |                 // borrow across the `&mut self` arg to | 
| 718 | 49.6k |                 // `abi_arg_slot_regs()` below. | 
| 719 | 49.6k |                 let ret = self.lower_ctx.sigs().get_ret(abi, i); | 
| 720 | 49.6k |                 let retval_regs = self.abi_arg_slot_regs(&ret).unwrap(); | 
| 721 | 49.6k |                 retval_insts.extend( | 
| 722 | 49.6k |                     caller | 
| 723 | 49.6k |                         .gen_retval(self.lower_ctx, i, retval_regs.clone()) | 
| 724 | 49.6k |                         .into_iter(), | 
| 725 | 49.6k |                 ); | 
| 726 | 49.6k |                 outputs.push(valueregs::non_writable_value_regs(retval_regs)); | 
| 727 | 49.6k |             } | 
| 728 |  |  | 
| 729 | 104k |             caller.emit_call(self.lower_ctx); | 
| 730 |  |  | 
| 731 | 104k |             for inst in retval_insts { | 
| 732 | 0 |                 self.lower_ctx.emit(inst); | 
| 733 | 0 |             } | 
| 734 |  |  | 
| 735 | 104k |             caller.emit_stack_post_adjust(self.lower_ctx); | 
| 736 | 104k |  | 
| 737 | 104k |             outputs | 
| 738 | 104k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6>>::gen_call_common| Line | Count | Source |  | 675 | 104k |         fn gen_call_common( |  | 676 | 104k |             &mut self, |  | 677 | 104k |             abi: Sig, |  | 678 | 104k |             num_rets: usize, |  | 679 | 104k |             mut caller: $abicaller, |  | 680 | 104k |             (inputs, off): ValueSlice, |  | 681 | 104k |         ) -> InstOutput { |  | 682 | 104k |             caller.emit_stack_pre_adjust(self.lower_ctx); |  | 683 | 104k |  |  | 684 | 104k |             let num_args = self.lower_ctx.sigs().num_args(abi); |  | 685 | 104k |  |  | 686 | 104k |             assert_eq!( |  | 687 | 104k |                 inputs.len(&self.lower_ctx.dfg().value_lists) - off, |  | 688 | 104k |                 num_args |  | 689 | 104k |             ); |  | 690 | 104k |             let mut arg_regs = vec![]; |  | 691 | 211k |             for i in 0..num_args { |  | 692 | 211k |                 let input = inputs |  | 693 | 211k |                     .get(off + i, &self.lower_ctx.dfg().value_lists) |  | 694 | 211k |                     .unwrap(); |  | 695 | 211k |                 arg_regs.push(self.lower_ctx.put_value_in_regs(input)); |  | 696 | 211k |             } |  | 697 | 211k |             for (i, arg_regs) in arg_regs.iter().enumerate() { |  | 698 | 211k |                 caller.emit_copy_regs_to_buffer(self.lower_ctx, i, *arg_regs); |  | 699 | 211k |             } |  | 700 | 211k |             for (i, arg_regs) in arg_regs.iter().enumerate() { |  | 701 | 211k |                 for inst in caller.gen_arg(self.lower_ctx, i, *arg_regs) { |  | 702 | 5.27k |                     self.lower_ctx.emit(inst); |  | 703 | 5.27k |                 } |  | 704 |  |             } |  | 705 |  |  |  | 706 |  |             // Handle retvals prior to emitting call, so the |  | 707 |  |             // constraints are on the call instruction; but buffer the |  | 708 |  |             // instructions till after the call. |  | 709 | 104k |             let mut outputs = InstOutput::new(); |  | 710 | 104k |             let mut retval_insts: crate::machinst::abi::SmallInstVec<_> = smallvec::smallvec![]; |  | 711 |  |             // We take the *last* `num_rets` returns of the sig: |  | 712 |  |             // this skips a StructReturn, if any, that is present. |  | 713 | 104k |             let sigdata_num_rets = self.lower_ctx.sigs().num_rets(abi); |  | 714 | 104k |             debug_assert!(num_rets <= sigdata_num_rets); |  | 715 | 104k |             for i in (sigdata_num_rets - num_rets)..sigdata_num_rets { |  | 716 | 49.6k |                 // Borrow `sigdata` again so we don't hold a `self` |  | 717 | 49.6k |                 // borrow across the `&mut self` arg to |  | 718 | 49.6k |                 // `abi_arg_slot_regs()` below. |  | 719 | 49.6k |                 let ret = self.lower_ctx.sigs().get_ret(abi, i); |  | 720 | 49.6k |                 let retval_regs = self.abi_arg_slot_regs(&ret).unwrap(); |  | 721 | 49.6k |                 retval_insts.extend( |  | 722 | 49.6k |                     caller |  | 723 | 49.6k |                         .gen_retval(self.lower_ctx, i, retval_regs.clone()) |  | 724 | 49.6k |                         .into_iter(), |  | 725 | 49.6k |                 ); |  | 726 | 49.6k |                 outputs.push(valueregs::non_writable_value_regs(retval_regs)); |  | 727 | 49.6k |             } |  | 728 |  |  |  | 729 | 104k |             caller.emit_call(self.lower_ctx); |  | 730 |  |  |  | 731 | 104k |             for inst in retval_insts { |  | 732 | 0 |                 self.lower_ctx.emit(inst); |  | 733 | 0 |             } |  | 734 |  |  |  | 735 | 104k |             caller.emit_stack_post_adjust(self.lower_ctx); |  | 736 | 104k |  |  | 737 | 104k |             outputs |  | 738 | 104k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6>>::gen_call_commonUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6>>::gen_call_common | 
| 739 |  |  | 
| 740 | 49.6k |         fn abi_arg_slot_regs(&mut self, arg: &ABIArg) -> Option<WritableValueRegs> { | 
| 741 | 49.6k |             match arg { | 
| 742 | 49.6k |                 &ABIArg::Slots { ref slots, .. } => match slots.len() { | 
| 743 |  |                     1 => { | 
| 744 | 49.6k |                         let a = self.temp_writable_reg(slots[0].get_type()); | 
| 745 | 49.6k |                         Some(WritableValueRegs::one(a)) | 
| 746 |  |                     } | 
| 747 |  |                     2 => { | 
| 748 | 0 |                         let a = self.temp_writable_reg(slots[0].get_type()); | 
| 749 | 0 |                         let b = self.temp_writable_reg(slots[1].get_type()); | 
| 750 | 0 |                         Some(WritableValueRegs::two(a, b)) | 
| 751 |  |                     } | 
| 752 | 0 |                     _ => panic!("Expected to see one or two slots only from {:?}", arg), | 
| 753 |  |                 }, | 
| 754 | 0 |                 _ => None, | 
| 755 |  |             } | 
| 756 | 49.6k |         } <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, 6>>::abi_arg_slot_regs| Line | Count | Source |  | 740 | 49.6k |         fn abi_arg_slot_regs(&mut self, arg: &ABIArg) -> Option<WritableValueRegs> { |  | 741 | 49.6k |             match arg { |  | 742 | 49.6k |                 &ABIArg::Slots { ref slots, .. } => match slots.len() { |  | 743 |  |                     1 => { |  | 744 | 49.6k |                         let a = self.temp_writable_reg(slots[0].get_type()); |  | 745 | 49.6k |                         Some(WritableValueRegs::one(a)) |  | 746 |  |                     } |  | 747 |  |                     2 => { |  | 748 | 0 |                         let a = self.temp_writable_reg(slots[0].get_type()); |  | 749 | 0 |                         let b = self.temp_writable_reg(slots[1].get_type()); |  | 750 | 0 |                         Some(WritableValueRegs::two(a, b)) |  | 751 |  |                     } |  | 752 | 0 |                     _ => panic!("Expected to see one or two slots only from {:?}", arg), |  | 753 |  |                 }, |  | 754 | 0 |                 _ => None, |  | 755 |  |             } |  | 756 | 49.6k |         } | 
Unexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, 6>>::abi_arg_slot_regsUnexecuted instantiation: <cranelift_codegen::machinst::isle::IsleContext<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, 6>>::abi_arg_slot_regs | 
| 757 |  |     }; | 
| 758 |  | } | 
| 759 |  |  | 
| 760 |  | /// This structure is used to implement the ISLE-generated `Context` trait and | 
| 761 |  | /// internally has a temporary reference to a machinst `LowerCtx`. | 
| 762 |  | pub(crate) struct IsleContext<'a, 'b, I, Flags, IsaFlags, const N: usize> | 
| 763 |  | where | 
| 764 |  |     I: VCodeInst, | 
| 765 |  |     [(I, bool); N]: smallvec::Array, | 
| 766 |  | { | 
| 767 |  |     pub lower_ctx: &'a mut Lower<'b, I>, | 
| 768 |  |     pub triple: &'a Triple, | 
| 769 |  |     pub flags: &'a Flags, | 
| 770 |  |     pub isa_flags: &'a IsaFlags, | 
| 771 |  | } | 
| 772 |  |  | 
| 773 |  | /// Shared lowering code amongst all backends for doing ISLE-based lowering. | 
| 774 |  | /// | 
| 775 |  | /// The `isle_lower` argument here is an ISLE-generated function for `lower` and | 
| 776 |  | /// then this function otherwise handles register mapping and such around the | 
| 777 |  | /// lowering. | 
| 778 | 869k | pub(crate) fn lower_common<I, Flags, IsaFlags, IsleFunction, const N: usize>( | 
| 779 | 869k |     lower_ctx: &mut Lower<I>, | 
| 780 | 869k |     triple: &Triple, | 
| 781 | 869k |     flags: &Flags, | 
| 782 | 869k |     isa_flags: &IsaFlags, | 
| 783 | 869k |     outputs: &[InsnOutput], | 
| 784 | 869k |     inst: Inst, | 
| 785 | 869k |     isle_lower: IsleFunction, | 
| 786 | 869k | ) -> Result<(), ()> | 
| 787 | 869k | where | 
| 788 | 869k |     I: VCodeInst, | 
| 789 | 869k |     [(I, bool); N]: smallvec::Array<Item = (I, bool)>, | 
| 790 | 869k |     IsleFunction: Fn(&mut IsleContext<'_, '_, I, Flags, IsaFlags, N>, Inst) -> Option<InstOutput>, | 
| 791 | 869k | { | 
| 792 | 869k |     // TODO: reuse the ISLE context across lowerings so we can reuse its | 
| 793 | 869k |     // internal heap allocations. | 
| 794 | 869k |     let mut isle_ctx = IsleContext { | 
| 795 | 869k |         lower_ctx, | 
| 796 | 869k |         triple, | 
| 797 | 869k |         flags, | 
| 798 | 869k |         isa_flags, | 
| 799 | 869k |     }; | 
| 800 |  |  | 
| 801 | 869k |     let temp_regs = isle_lower(&mut isle_ctx, inst).ok_or(())?; | 
| 802 |  |  | 
| 803 |  |     #[cfg(debug_assertions)] | 
| 804 |  |     { | 
| 805 |  |         debug_assert_eq!( | 
| 806 |  |             temp_regs.len(), | 
| 807 |  |             outputs.len(), | 
| 808 |  |             "the number of temporary values and destination values do \ | 
| 809 |  |          not match ({} != {}); ensure the correct registers are being \ | 
| 810 |  |          returned.", | 
| 811 |  |             temp_regs.len(), | 
| 812 |  |             outputs.len(), | 
| 813 |  |         ); | 
| 814 |  |     } | 
| 815 |  |  | 
| 816 |  |     // The ISLE generated code emits its own registers to define the | 
| 817 |  |     // instruction's lowered values in. However, other instructions | 
| 818 |  |     // that use this SSA value will be lowered assuming that the value | 
| 819 |  |     // is generated into a pre-assigned, different, register. | 
| 820 |  |     // | 
| 821 |  |     // To connect the two, we set up "aliases" in the VCodeBuilder | 
| 822 |  |     // that apply when it is building the Operand table for the | 
| 823 |  |     // regalloc to use. These aliases effectively rewrite any use of | 
| 824 |  |     // the pre-assigned register to the register that was returned by | 
| 825 |  |     // the ISLE lowering logic. | 
| 826 | 869k |     for i in 0..outputs.len() { | 
| 827 | 458k |         let regs = temp_regs[i]; | 
| 828 | 458k |         let dsts = get_output_reg(isle_ctx.lower_ctx, outputs[i]); | 
| 829 | 458k |         let ty = isle_ctx | 
| 830 | 458k |             .lower_ctx | 
| 831 | 458k |             .output_ty(outputs[i].insn, outputs[i].output); | 
| 832 | 458k |         if ty == types::IFLAGS || ty == types::FFLAGS { | 
| 833 |  |             // Flags values do not occupy any registers. | 
| 834 | 0 |             assert!(regs.len() == 0); | 
| 835 |  |         } else { | 
| 836 | 458k |             for (dst, temp) in dsts.regs().iter().zip(regs.regs().iter()) { | 
| 837 | 458k |                 isle_ctx.lower_ctx.set_vreg_alias(dst.to_reg(), *temp); | 
| 838 | 458k |             } | 
| 839 |  |         } | 
| 840 |  |     } | 
| 841 |  |  | 
| 842 | 869k |     Ok(()) | 
| 843 | 869k | } cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, cranelift_codegen::isa::x64::lower::isle::lower_branch::{closure#0}, 6>| Line | Count | Source |  | 778 | 167k | pub(crate) fn lower_common<I, Flags, IsaFlags, IsleFunction, const N: usize>( |  | 779 | 167k |     lower_ctx: &mut Lower<I>, |  | 780 | 167k |     triple: &Triple, |  | 781 | 167k |     flags: &Flags, |  | 782 | 167k |     isa_flags: &IsaFlags, |  | 783 | 167k |     outputs: &[InsnOutput], |  | 784 | 167k |     inst: Inst, |  | 785 | 167k |     isle_lower: IsleFunction, |  | 786 | 167k | ) -> Result<(), ()> |  | 787 | 167k | where |  | 788 | 167k |     I: VCodeInst, |  | 789 | 167k |     [(I, bool); N]: smallvec::Array<Item = (I, bool)>, |  | 790 | 167k |     IsleFunction: Fn(&mut IsleContext<'_, '_, I, Flags, IsaFlags, N>, Inst) -> Option<InstOutput>, |  | 791 | 167k | { |  | 792 | 167k |     // TODO: reuse the ISLE context across lowerings so we can reuse its |  | 793 | 167k |     // internal heap allocations. |  | 794 | 167k |     let mut isle_ctx = IsleContext { |  | 795 | 167k |         lower_ctx, |  | 796 | 167k |         triple, |  | 797 | 167k |         flags, |  | 798 | 167k |         isa_flags, |  | 799 | 167k |     }; |  | 800 |  |  |  | 801 | 167k |     let temp_regs = isle_lower(&mut isle_ctx, inst).ok_or(())?; |  | 802 |  |  |  | 803 |  |     #[cfg(debug_assertions)] |  | 804 |  |     { |  | 805 |  |         debug_assert_eq!( |  | 806 |  |             temp_regs.len(), |  | 807 |  |             outputs.len(), |  | 808 |  |             "the number of temporary values and destination values do \ |  | 809 |  |          not match ({} != {}); ensure the correct registers are being \ |  | 810 |  |          returned.", |  | 811 |  |             temp_regs.len(), |  | 812 |  |             outputs.len(), |  | 813 |  |         ); |  | 814 |  |     } |  | 815 |  |  |  | 816 |  |     // The ISLE generated code emits its own registers to define the |  | 817 |  |     // instruction's lowered values in. However, other instructions |  | 818 |  |     // that use this SSA value will be lowered assuming that the value |  | 819 |  |     // is generated into a pre-assigned, different, register. |  | 820 |  |     // |  | 821 |  |     // To connect the two, we set up "aliases" in the VCodeBuilder |  | 822 |  |     // that apply when it is building the Operand table for the |  | 823 |  |     // regalloc to use. These aliases effectively rewrite any use of |  | 824 |  |     // the pre-assigned register to the register that was returned by |  | 825 |  |     // the ISLE lowering logic. |  | 826 | 167k |     for i in 0..outputs.len() { |  | 827 | 0 |         let regs = temp_regs[i]; |  | 828 | 0 |         let dsts = get_output_reg(isle_ctx.lower_ctx, outputs[i]); |  | 829 | 0 |         let ty = isle_ctx |  | 830 | 0 |             .lower_ctx |  | 831 | 0 |             .output_ty(outputs[i].insn, outputs[i].output); |  | 832 | 0 |         if ty == types::IFLAGS || ty == types::FFLAGS { |  | 833 |  |             // Flags values do not occupy any registers. |  | 834 | 0 |             assert!(regs.len() == 0); |  | 835 |  |         } else { |  | 836 | 0 |             for (dst, temp) in dsts.regs().iter().zip(regs.regs().iter()) { |  | 837 | 0 |                 isle_ctx.lower_ctx.set_vreg_alias(dst.to_reg(), *temp); |  | 838 | 0 |             } |  | 839 |  |         } |  | 840 |  |     } |  | 841 |  |  |  | 842 | 167k |     Ok(()) |  | 843 | 167k | } | 
cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::x64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::x64::settings::Flags, cranelift_codegen::isa::x64::lower::isle::lower::{closure#0}, 6>| Line | Count | Source |  | 778 | 702k | pub(crate) fn lower_common<I, Flags, IsaFlags, IsleFunction, const N: usize>( |  | 779 | 702k |     lower_ctx: &mut Lower<I>, |  | 780 | 702k |     triple: &Triple, |  | 781 | 702k |     flags: &Flags, |  | 782 | 702k |     isa_flags: &IsaFlags, |  | 783 | 702k |     outputs: &[InsnOutput], |  | 784 | 702k |     inst: Inst, |  | 785 | 702k |     isle_lower: IsleFunction, |  | 786 | 702k | ) -> Result<(), ()> |  | 787 | 702k | where |  | 788 | 702k |     I: VCodeInst, |  | 789 | 702k |     [(I, bool); N]: smallvec::Array<Item = (I, bool)>, |  | 790 | 702k |     IsleFunction: Fn(&mut IsleContext<'_, '_, I, Flags, IsaFlags, N>, Inst) -> Option<InstOutput>, |  | 791 | 702k | { |  | 792 | 702k |     // TODO: reuse the ISLE context across lowerings so we can reuse its |  | 793 | 702k |     // internal heap allocations. |  | 794 | 702k |     let mut isle_ctx = IsleContext { |  | 795 | 702k |         lower_ctx, |  | 796 | 702k |         triple, |  | 797 | 702k |         flags, |  | 798 | 702k |         isa_flags, |  | 799 | 702k |     }; |  | 800 |  |  |  | 801 | 702k |     let temp_regs = isle_lower(&mut isle_ctx, inst).ok_or(())?; |  | 802 |  |  |  | 803 |  |     #[cfg(debug_assertions)] |  | 804 |  |     { |  | 805 |  |         debug_assert_eq!( |  | 806 |  |             temp_regs.len(), |  | 807 |  |             outputs.len(), |  | 808 |  |             "the number of temporary values and destination values do \ |  | 809 |  |          not match ({} != {}); ensure the correct registers are being \ |  | 810 |  |          returned.", |  | 811 |  |             temp_regs.len(), |  | 812 |  |             outputs.len(), |  | 813 |  |         ); |  | 814 |  |     } |  | 815 |  |  |  | 816 |  |     // The ISLE generated code emits its own registers to define the |  | 817 |  |     // instruction's lowered values in. However, other instructions |  | 818 |  |     // that use this SSA value will be lowered assuming that the value |  | 819 |  |     // is generated into a pre-assigned, different, register. |  | 820 |  |     // |  | 821 |  |     // To connect the two, we set up "aliases" in the VCodeBuilder |  | 822 |  |     // that apply when it is building the Operand table for the |  | 823 |  |     // regalloc to use. These aliases effectively rewrite any use of |  | 824 |  |     // the pre-assigned register to the register that was returned by |  | 825 |  |     // the ISLE lowering logic. |  | 826 | 702k |     for i in 0..outputs.len() { |  | 827 | 458k |         let regs = temp_regs[i]; |  | 828 | 458k |         let dsts = get_output_reg(isle_ctx.lower_ctx, outputs[i]); |  | 829 | 458k |         let ty = isle_ctx |  | 830 | 458k |             .lower_ctx |  | 831 | 458k |             .output_ty(outputs[i].insn, outputs[i].output); |  | 832 | 458k |         if ty == types::IFLAGS || ty == types::FFLAGS { |  | 833 |  |             // Flags values do not occupy any registers. |  | 834 | 0 |             assert!(regs.len() == 0); |  | 835 |  |         } else { |  | 836 | 458k |             for (dst, temp) in dsts.regs().iter().zip(regs.regs().iter()) { |  | 837 | 458k |                 isle_ctx.lower_ctx.set_vreg_alias(dst.to_reg(), *temp); |  | 838 | 458k |             } |  | 839 |  |         } |  | 840 |  |     } |  | 841 |  |  |  | 842 | 702k |     Ok(()) |  | 843 | 702k | } | 
Unexecuted instantiation: cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, cranelift_codegen::isa::aarch64::lower::isle::lower_branch::{closure#0}, 6>Unexecuted instantiation: cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::aarch64::settings::Flags, cranelift_codegen::isa::aarch64::lower::isle::lower::{closure#0}, 6>Unexecuted instantiation: cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, cranelift_codegen::isa::riscv64::lower::isle::lower_branch::{closure#0}, 6>Unexecuted instantiation: cranelift_codegen::machinst::isle::lower_common::<cranelift_codegen::isa::riscv64::lower::isle::generated_code::MInst, cranelift_codegen::settings::Flags, cranelift_codegen::isa::riscv64::settings::Flags, cranelift_codegen::isa::riscv64::lower::isle::lower::{closure#0}, 6> |