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: StringInstruction mnemonic, also becomes opcode name.
camel_name: String§doc: StringDocumentation 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: boolTrue for instructions that terminate the block.
is_branch: boolTrue for all branch or jump instructions.
is_call: boolIs this a call instruction?
is_return: boolIs this a return instruction?
can_load: boolCan this instruction read from memory?
can_store: boolCan this instruction write to memory?
can_trap: boolCan this instruction cause a trap?
other_side_effects: boolDoes this instruction have other side effects besides can_* flags?
side_effects_idempotent: boolDespite having other side effects, is this instruction okay to GVN?