Module instructions

Source
Expand description

Instruction formats and opcodes.

The instructions module contains definitions for instruction formats, opcodes, and the in-memory representation of IR instructions.

A large part of this module is auto-generated from the instruction descriptions in the meta directory.

Structs§

BlockCall
A pair of a Block and its arguments, stored in a single EntityList internally.
DisplayBlockCall
Wrapper for the context needed to display a BlockCall value.
OpcodeConstraints
Value type constraints for a given opcode.
ValueTypeSet
A value type set describes the permitted set of types for a type variable.
VariableArgs
A variable list of Value operands used for function call arguments and passing arguments to basic blocks.

Enums§

BlockArg
A BlockArg is a sum type of Value, TryCallRet, and TryCallExn. The latter two are values that are generated “on the edge” out of a try_call instruction into a successor block. We use special arguments rather than special values for these because they are not definable as SSA values at a certain program point – only when the BlockCall is executed.
CallInfo
Information about call instructions.
InstructionData
InstructionFormat
An instruction format
Opcode
An instruction opcode.
ResolvedConstraint
The type constraint on a value argument once the controlling type variable is known.

Type Aliases§

ValueList
Some instructions use an external list of argument values because there is not enough space in the 16-byte InstructionData struct. These value lists are stored in a memory pool in dfg.value_lists.
ValueListPool
Memory pool for holding value lists. See ValueList.