MCPcopy Create free account
hub / github.com/Amanieu/regalloc3 / IndirectRemat

Class IndirectRemat

src/function.rs:543–561  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

541#[derive(Debug, Clone, Copy)]
542#[cfg_attr(feature = "serde", derive(serde::Serialize))]
543pub struct IndirectRemat<'a> {
544 /// Constraint required for the rematerialization destination.
545 ///
546 /// If this is [`OperandConstraint::Reuse`], then the index refers to a
547 /// scalar [`OperandKind::Use`] entry in [`IndirectRemat::inputs`].
548 pub constraint: OperandConstraint,
549
550 /// Operands read by the rematerialization instruction.
551 ///
552 /// Input operands must be [`OperandKind::Use`], [`OperandKind::UseGroup`]
553 /// or [`OperandKind::NonAllocatable`], and otherwise follow the normal
554 /// rules for operands.
555 pub inputs: &'a [Operand],
556
557 /// Whether the destination allocation may overlap with any input
558 /// allocation, except for overlaps explicitly requested with
559 /// [`OperandConstraint::Reuse`].
560 pub allow_destination_overlap: bool,
561}
562
563/// Type of terminator instruction at the end of a basic block.
564#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected