1 //! Cranelift umbrella crate, providing a convenient one-line dependency.
2 
3 #![deny(missing_docs)]
4 #![no_std]
5 
6 /// Provide these crates, renamed to reduce stutter.
7 pub use cranelift_codegen as codegen;
8 #[cfg(feature = "frontend")]
9 pub use cranelift_frontend as frontend;
10 #[cfg(feature = "interpreter")]
11 pub use cranelift_interpreter as interpreter;
12 #[cfg(feature = "jit")]
13 pub use cranelift_jit as jit;
14 #[cfg(feature = "module")]
15 pub use cranelift_module as module;
16 #[cfg(feature = "native")]
17 pub use cranelift_native as native;
18 #[cfg(feature = "object")]
19 pub use cranelift_object as object;
20 
21 /// A prelude providing convenient access to commonly-used cranelift features. Use
22 /// as `use cranelift::prelude::*`.
23 pub mod prelude {
24     pub use crate::codegen;
25     pub use crate::codegen::entity::EntityRef;
26     pub use crate::codegen::ir::condcodes::{FloatCC, IntCC};
27     pub use crate::codegen::ir::immediates::{Ieee32, Ieee64, Imm64, Uimm64};
28     pub use crate::codegen::ir::types;
29     pub use crate::codegen::ir::{
30         AbiParam, Block, ExtFuncData, ExternalName, GlobalValueData, InstBuilder, JumpTableData,
31         MemFlags, Signature, StackSlotData, StackSlotKind, TrapCode, Type, Value,
32     };
33     pub use crate::codegen::isa;
34     pub use crate::codegen::settings::{self, Configurable};
35 
36     #[cfg(feature = "frontend")]
37     pub use crate::frontend::{FunctionBuilder, FunctionBuilderContext, Variable};
38 }
39 
40 /// Version number of this crate.
41 pub const VERSION: &str = env!("CARGO_PKG_VERSION");
42