Add new ordered set and map data structures based on B+-trees. These are not general-purpose data structures like the BTreeSet and BTreeMap types in the standard library. They are specialized for: - Keys and values are small `Copy` types, optimized for 32-bit entities. - Each set or map has a very small footprint, using only 32 bits of memory when empty. - Keys are compared using a borrowed comparator object which can provide context for comparing tiny types that don't contain enough information to implement `Ord`. - A whole forest of B-trees can be cleared in constant time without having to traverse the whole data structure.
48 lines
842 B
Rust
48 lines
842 B
Rust
//! Cretonne code generation library.
|
|
|
|
#![deny(missing_docs)]
|
|
|
|
pub use context::Context;
|
|
pub use legalizer::legalize_function;
|
|
pub use verifier::verify_function;
|
|
pub use write::write_function;
|
|
|
|
/// Version number of the cretonne crate.
|
|
pub const VERSION: &'static str = env!("CARGO_PKG_VERSION");
|
|
|
|
#[macro_use]
|
|
pub mod dbg;
|
|
#[macro_use]
|
|
pub mod entity;
|
|
|
|
pub mod bforest;
|
|
pub mod binemit;
|
|
pub mod bitset;
|
|
pub mod cursor;
|
|
pub mod dominator_tree;
|
|
pub mod flowgraph;
|
|
pub mod ir;
|
|
pub mod isa;
|
|
pub mod loop_analysis;
|
|
pub mod packed_option;
|
|
pub mod regalloc;
|
|
pub mod result;
|
|
pub mod settings;
|
|
pub mod verifier;
|
|
|
|
mod abi;
|
|
mod constant_hash;
|
|
mod context;
|
|
mod iterators;
|
|
mod legalizer;
|
|
mod licm;
|
|
mod partition_slice;
|
|
mod predicates;
|
|
mod ref_slice;
|
|
mod scoped_hash_map;
|
|
mod simple_gvn;
|
|
mod stack_layout;
|
|
mod topo_order;
|
|
mod unreachable_code;
|
|
mod write;
|