Expand description
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
- The
atomic.fence
instruction - The
atomic.notify
instruction to wake up threads. - An atomic read/modify/write operation.
- The
*.atomic.wait
instruction to block threads. - Binary operations, those requiring two operands
block ... end
br
br_if
br_table
call
call_indirect
- An atomic compare-and-exchange operation.
*.const
data.drop
drop
elem.drop
global.get n
global.set n
i8x16.shuffle
i8x16.swizzle
if <consequent> else <alternative> end
- A symbolic original wasm operator source location.
- A sequence of instructions.
*.load
- Various instructions to load a simd vector from memory
- A local variable or parameter.
local.get n
local.set n
local.tee n
loop ... end
- Arguments to memory operations, containing a constant offset from a dynamic address as well as a predicted alignment.
memory.copy
memory.fill
memory.grow
memory.init
memory.size
ref.func
ref.is_null
ref.null $ty
return
select
*.store
table.copy
table.fill
table.get
table.grow
table.init
table.set
table.size
- Unary operations, those requiring one operand
unreachable
v128.bitselect
Enums
- The different kinds of atomic rmw operations
- The different kinds of atomic rmw operations
- Possible binary operations in wasm
- The kinds of extended loads which can happen
- An enum of all the different kinds of wasm instructions.
- The type of an instruction sequence.
- The different kinds of load instructions that are part of a
Load
IR node - The different kinds of load instructions that are part of a
LoadSimd
IR node - The different kinds of store instructions that are part of a
Store
IR node - Possible unary operations in wasm
- Constant values that can show up in WebAssembly
Traits
- A visitor is a set of callbacks that are called when a traversal (such as
dfs_in_order
) is walking an instruction tree. - A mutable version of
Visitor
.
Functions
- Perform an intra-procedural, depth-first, in-order traversal of the IR.
- Perform an intra-procedural, depth-first, pre-order, mutable traversal of the IR.
Type Aliases
- The identifier for a
InstrSeq
within someLocalFunction
. - The id of a local.
- Argument in
V128Shuffle
of lane indices to select