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.