cranelift_codegen

Module ir

Source
Expand description

Representation of Cranelift IR functions.

Re-exports§

pub use crate::ir::constant::ConstantData;
pub use crate::ir::constant::ConstantPool;
pub use crate::ir::dfg::BlockData;
pub use crate::ir::dfg::DataFlowGraph;
pub use crate::ir::dfg::ValueDef;
pub use crate::ir::dynamic_type::dynamic_to_fixed;
pub use crate::ir::dynamic_type::DynamicTypeData;
pub use crate::ir::dynamic_type::DynamicTypes;
pub use crate::ir::entities::Block;
pub use crate::ir::entities::Constant;
pub use crate::ir::entities::DynamicStackSlot;
pub use crate::ir::entities::DynamicType;
pub use crate::ir::entities::FuncRef;
pub use crate::ir::entities::GlobalValue;
pub use crate::ir::entities::Immediate;
pub use crate::ir::entities::Inst;
pub use crate::ir::entities::JumpTable;
pub use crate::ir::entities::MemoryType;
pub use crate::ir::entities::SigRef;
pub use crate::ir::entities::StackSlot;
pub use crate::ir::entities::UserExternalNameRef;
pub use crate::ir::entities::Value;
pub use crate::ir::function::Function;
pub use crate::ir::instructions::BlockCall;
pub use crate::ir::instructions::InstructionData;
pub use crate::ir::instructions::Opcode;
pub use crate::ir::instructions::ValueList;
pub use crate::ir::instructions::ValueListPool;
pub use crate::ir::instructions::VariableArgs;
pub use crate::ir::jumptable::JumpTableData;
pub use crate::ir::layout::Layout;
pub use crate::ir::pcc::BaseExpr;
pub use crate::ir::pcc::Expr;
pub use crate::ir::pcc::Fact;
pub use crate::ir::pcc::FactContext;
pub use crate::ir::pcc::PccError;
pub use crate::ir::pcc::PccResult;
pub use crate::ir::stackslot::DynamicStackSlotData;
pub use crate::ir::stackslot::DynamicStackSlots;
pub use crate::ir::stackslot::StackSlotData;
pub use crate::ir::stackslot::StackSlotKind;
pub use crate::ir::stackslot::StackSlots;
pub use crate::ir::types::Type;

Modules§

condcodes
Condition codes for the Cranelift code generator.
constant
Constants
dfg
Data flow graph tracking Instructions, Values, and blocks.
dynamic_type
Dynamic IR types
entities
Cranelift IR entity references.
function
Intermediate representation of a function.
immediates
Immediate operands for Cranelift instructions
instructions
Instruction formats and opcodes.
jumptable
Jump table representation.
layout
Function layout.
pcc
Proof-carrying code. We attach “facts” to values and then check that they remain true after compilation.
stackslot
Stack slots.
types
Common types for the Cranelift code generator.

Structs§

AbiParam
Function parameter or return value descriptor.
ExtFuncData
An external function.
InsertBuilder
Builder that inserts an instruction at the current position.
MemFlags
Flags for memory operations like load/store.
MemoryTypeField
One field in a memory type.
RelSourceLoc
Source location relative to another base source location.
ReplaceBuilder
Instruction builder that replaces an existing instruction.
Signature
Function signature.
SourceLoc
A source location.
TrapCode
A trap code describing the reason for a trap.
UserExternalName
An external name in a user-defined symbol table.
UserStackMap
A compiled stack map, describing the location of many GC-managed values.
UserStackMapEntry
A stack map entry describes a single GC-managed value and its location on the stack.
ValueLabel
Marked with a label value.
ValueLabelStart
A label of a Value.

Enums§

AliasRegion
Which disjoint region of aliasing memory is accessed in this memory operation.
ArgumentExtension
Function argument extension options.
ArgumentPurpose
The special purpose of a function argument.
AtomicRmwOp
Describes the arithmetic operation in an atomic memory read-modify-write operation.
Endianness
Endianness of a memory access.
ExternalName
The name of an external is either a reference to a user-defined symbol table, or a short sequence of ascii bytes so that test cases do not have to keep track of a symbol table.
GlobalValueData
Information about a global value declaration.
KnownSymbol
A well-known symbol.
LibCall
The name of a runtime library routine.
MemoryTypeData
Data defining a memory type.
ProgramPoint
A ProgramPoint represents a position in a function where the live range of an SSA value can begin or end. It can be either:
UserFuncName
An explicit name for a user-defined function, be it defined in code or in CLIF text.
ValueLabelAssignments
Value label assignments: label starts or value aliases.

Traits§

InstBuilder
Convenience methods for building instructions.
InstBuilderBase
Base trait for instruction builders.
InstInserterBase
Base trait for instruction inserters.

Functions§

get_probestack_funcref
Get a function reference for the probestack function in func.

Type Aliases§

JumpTables
Map of jump tables.