pub(crate) struct InstructionContent {Show 19 fields
pub name: String,
pub camel_name: String,
pub doc: String,
pub operands_in: Vec<Operand>,
pub operands_out: Vec<Operand>,
pub format: Rc<InstructionFormat>,
pub polymorphic_info: Option<PolymorphicInfo>,
pub value_opnums: Vec<usize>,
pub imm_opnums: Vec<usize>,
pub value_results: Vec<usize>,
pub is_terminator: bool,
pub is_branch: bool,
pub is_call: bool,
pub is_return: bool,
pub can_load: bool,
pub can_store: bool,
pub can_trap: bool,
pub other_side_effects: bool,
pub side_effects_idempotent: bool,
}
Fields§
§name: String
Instruction mnemonic, also becomes opcode name.
camel_name: String
§doc: String
Documentation string.
operands_in: Vec<Operand>
Input operands. This can be a mix of SSA value operands and other operand kinds.
operands_out: Vec<Operand>
Output operands. The output operands must be SSA values or variable_args
.
format: Rc<InstructionFormat>
Instruction format.
polymorphic_info: Option<PolymorphicInfo>
One of the input or output operands is a free type variable. None if the instruction is not polymorphic, set otherwise.
value_opnums: Vec<usize>
Indices in operands_in of input operands that are values.
imm_opnums: Vec<usize>
Indices in operands_in of input operands that are immediates or entities.
value_results: Vec<usize>
Indices in operands_out of output operands that are values.
is_terminator: bool
True for instructions that terminate the block.
is_branch: bool
True for all branch or jump instructions.
is_call: bool
Is this a call instruction?
is_return: bool
Is this a return instruction?
can_load: bool
Can this instruction read from memory?
can_store: bool
Can this instruction write to memory?
can_trap: bool
Can this instruction cause a trap?
other_side_effects: bool
Does this instruction have other side effects besides can_* flags?
side_effects_idempotent: bool
Despite having other side effects, is this instruction okay to GVN?