pub struct Context {
pub modules: Arena<ModuleContent>,
pub functions: Arena<FunctionContent>,
pub blocks: Arena<BlockContent>,
pub values: Arena<ValueContent>,
pub pointers: Arena<PointerContent>,
pub aggregates: Arena<AggregateContent>,
pub abi_instances: Arena<AbiInstanceContent>,
pub asm_blocks: Arena<AsmBlockContent>,
/* private fields */
}
Expand description
The main IR context handle.
Every module, function, block and value is stored here. Some aggregate metadata is also managed by the context.
Fields
modules: Arena<ModuleContent>
functions: Arena<FunctionContent>
blocks: Arena<BlockContent>
values: Arena<ValueContent>
pointers: Arena<PointerContent>
aggregates: Arena<AggregateContent>
abi_instances: Arena<AbiInstanceContent>
asm_blocks: Arena<AsmBlockContent>
Implementations
pub fn module_iter(&self) -> ModuleIteratorⓘNotable traits for ModuleIteratorimpl Iterator for ModuleIterator type Item = Module;
pub fn module_iter(&self) -> ModuleIteratorⓘNotable traits for ModuleIteratorimpl Iterator for ModuleIterator type Item = Module;
Notable traits for ModuleIterator
impl Iterator for ModuleIterator type Item = Module;
Return an interator for every module in this context.
Add aggregate (struct) field names and their indicies to the context.
Used to symbolically cross-reference the index to aggregate fields by
Context::get_aggregate_index
.
Return a named aggregate, if known.
Get the field index within an aggregate (struct) by name, if known.
The field names must be registered already using Context::add_aggregate_symbols
.
Get a globally unique symbol.
The name will be in the form "anon_N"
, where N
is an incrementing decimal.