[−][src]Module walrus::ir
Intermediate representation for instructions.
The goal is to match wasm instructions as closely as possible, but translate
the stack machine into an instruction tree. Additionally all control frames
are representd as Block
s.
Structs
AtomicFence | The |
AtomicNotify | The |
AtomicRmw | An atomic read/modify/write operation. |
AtomicWait | The |
Binop | Binary operations, those requiring two operands |
Block |
|
Br |
|
BrIf |
|
BrTable |
|
Call |
|
CallIndirect |
|
Cmpxchg | An atomic compare-and-exchange operation. |
Const |
|
DataDrop |
|
Drop |
|
GlobalGet |
|
GlobalSet |
|
IfElse |
|
InstrSeq | A sequence of instructions. |
Load |
|
LoadSplat |
|
Local | A local variable or parameter. |
LocalGet |
|
LocalSet |
|
LocalTee |
|
Loop |
|
MemArg | Arguments to memory operations, containing a constant offset from a dynamic address as well as a predicted alignment. |
MemoryCopy |
|
MemoryFill |
|
MemoryGrow |
|
MemoryInit |
|
MemorySize |
|
RefIsNull |
|
RefNull |
|
Return |
|
Select |
|
Store |
|
TableGet |
|
TableGrow |
|
TableSet |
|
TableSize |
|
Unop | Unary operations, those requiring one operand |
Unreachable |
|
V128Bitselect |
|
V128Swizzle |
|
V128Shuffle |
|
Enums
AtomicOp | The different kinds of atomic rmw operations |
AtomicWidth | The different kinds of atomic rmw operations |
BinaryOp | Possible binary operations in wasm |
ExtendedLoad | The kinds of extended loads which can happen |
Instr | An enum of all the different kinds of wasm instructions. |
InstrSeqType | The type of an instruction sequence. |
LoadKind | The different kinds of load instructions that are part of a |
LoadSplatKind | The different kinds of load instructions that are part of a |
StoreKind | The different kinds of store instructions that are part of a |
UnaryOp | Possible unary operations in wasm |
Value | Constant values that can show up in WebAssembly |
Traits
Visitor | A visitor is a set of callbacks that are called when a traversal
(such as |
VisitorMut | A mutable version of |
Functions
dfs_in_order | Perform an intra-procedural, depth-first, in-order traversal of the IR. |
dfs_pre_order_mut | Perform an intra-procedural, depth-first, pre-order, mutable traversal of the IR. |
Type Definitions
InstrSeqId | The identifier for a |
LocalId | The id of a local. |
ShuffleIndices | Argument in |