(
instructions: Vec<Instruction>,
max_locals: u16,
fixed_prefix_slots: u16,
)
| 41 | Float, |
| 42 | Double, |
| 43 | Reference, |
| 44 | } |
| 45 | |
| 46 | #[derive(Clone, Copy, Debug)] |
| 47 | struct LocalRef { |
| 48 | index: u16, |
| 49 | width: u16, |
| 50 | } |
| 51 | |
| 52 | #[derive(Clone, Debug)] |
| 53 | struct LiveRange { |
| 54 | width: u16, |
| 55 | first: usize, |
| 56 | last: usize, |
| 57 | } |
| 58 | |
| 59 | #[derive(Debug)] |
| 60 | struct LocalLiveness { |
| 61 | widths: Vec<u16>, |
| 62 | uses: Vec<Option<u16>>, |
| 63 | defs: Vec<Option<u16>>, |
| 64 | live_in: LocalBitMatrix, |
| 65 | live_out: LocalBitMatrix, |
| 66 | } |
| 67 | |
| 68 | #[derive(Debug, Default)] |
| 69 | enum CompactSuccessors { |
| 70 | #[default] |
| 71 | None, |
| 72 | One(usize), |
| 73 | Two(usize, usize), |
| 74 | Many(Vec<usize>), |
| 75 | } |
| 76 | |
| 77 | impl CompactSuccessors { |
| 78 | fn push(&mut self, successor: usize) { |
no test coverage detected