pub struct Row {
pub at: usize,
pub span: Span,
pub inst: Option<Inst>,
}Expand description
Where one machine instruction ended up, and where in the source it came from.
The span rather than a file and a line, because this layer has no source map and no business
acquiring one. Turning a span into a place is the driver’s, which is also where the paths a
-ffile-prefix-map rewrites are still paths.
Fields§
§at: usizeHow far into its own function the instruction begins.
span: SpanWhat the machine IR said this instruction was for.
inst: Option<Inst>Which instruction of the machine function it is, or None for the row the prologue gets,
which is the one row here that no instruction wrote.
The line table has no use for it and the locations do: a local the allocator kept in a register is somewhere over a stretch the back end named by an instruction at each end, because a machine instruction has no length until something encodes it, and this is where it gets one. Carried on the row rather than as a second list because the two are the same walk and a second list is a thing that can come to disagree with the first.
Trait Implementations§
impl Copy for Row
impl Eq for Row
impl StructuralPartialEq for Row
Auto Trait Implementations§
impl Freeze for Row
impl RefUnwindSafe for Row
impl Send for Row
impl Sync for Row
impl Unpin for Row
impl UnsafeUnpin for Row
impl UnwindSafe for Row
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.