Skip to main content

llvm_codegen/
lib.rs

1//! Target-independent code generation: legalization, instruction selection, register allocation, scheduling, and emission.
2
3pub mod assembler;
4/// Public API for `emit`.
5pub mod emit;
6/// Public API for `isel`.
7pub mod isel;
8/// Public API for `legalize`.
9pub mod legalize;
10/// Public API for `regalloc`.
11pub mod regalloc;
12/// Public API for `regalloc_gc`.
13pub mod regalloc_gc;
14/// Public API for `schedule`.
15pub mod schedule;
16
17/// Public API for `re-export`.
18pub use assembler::{
19    assemble_bytes, assemble_object, assemble_with_report, AssembledObject, IntegratedAssembler,
20    McAssembler, McAssemblyReport,
21};
22/// Public API for `re-export`.
23pub use emit::{emit_object, Emitter, ObjectFile, ObjectFormat, Reloc, RelocKind, Section, Symbol};
24/// Public API for `re-export`.
25pub use isel::{IselBackend, MInstr, MOpcode, MOperand, MachineBlock, MachineFunction, PReg, VReg};
26/// Public API for `re-export`.
27pub use regalloc::{
28    allocate_registers, apply_allocation, compute_live_intervals, graph_color,
29    insert_spill_reloads, linear_scan, RegAllocStrategy,
30};