Skip to main content

cranelift/
lib.rs

1//! Cranelift umbrella crate, providing a convenient one-line dependency.
2
3#![deny(
4    missing_docs,
5    trivial_numeric_casts,
6    unused_extern_crates,
7    unstable_features
8)]
9#![warn(unused_import_braces)]
10#![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))]
11#![cfg_attr(feature = "cargo-clippy", allow(clippy::new_without_default))]
12#![cfg_attr(
13    feature = "cargo-clippy",
14    warn(
15        clippy::float_arithmetic,
16        clippy::mut_mut,
17        clippy::nonminimal_bool,
18        clippy::option_map_unwrap_or,
19        clippy::option_map_unwrap_or_else,
20        clippy::print_stdout,
21        clippy::unicode_not_nfc,
22        clippy::use_self
23    )
24)]
25#![no_std]
26
27/// Provide these crates, renamed to reduce stutter.
28pub use cranelift_codegen as codegen;
29pub use cranelift_frontend as frontend;
30
31/// A prelude providing convenient access to commonly-used cranelift features. Use
32/// as `use cranelift::prelude::*`.
33pub mod prelude {
34    pub use crate::codegen;
35    pub use crate::codegen::entity::EntityRef;
36    pub use crate::codegen::ir::condcodes::{FloatCC, IntCC};
37    pub use crate::codegen::ir::immediates::{Ieee32, Ieee64, Imm64, Uimm64};
38    pub use crate::codegen::ir::types;
39    pub use crate::codegen::ir::{
40        AbiParam, Ebb, ExtFuncData, ExternalName, GlobalValueData, InstBuilder, JumpTableData,
41        MemFlags, Signature, StackSlotData, StackSlotKind, TrapCode, Type, Value,
42    };
43    pub use crate::codegen::isa;
44    pub use crate::codegen::settings::{self, Configurable};
45
46    pub use crate::frontend::{FunctionBuilder, FunctionBuilderContext, Variable};
47}
48
49/// Version number of this crate.
50pub const VERSION: &str = env!("CARGO_PKG_VERSION");