[package]
authors = ["The Cranelift Project Developers"]
name = "cranelift-codegen"
version = "0.117.0"
description = "Low-level code generator library"
license = "Apache-2.0 WITH LLVM-exception"
documentation = "https://docs.rs/cranelift-codegen"
repository = "https://github.com/bytecodealliance/wasmtime"
categories = ["no-std"]
readme = "README.md"
keywords = ["compile", "compiler", "jit"]
build = "build.rs"
edition.workspace = true
rust-version.workspace = true
[lints]
workspace = true
[package.metadata.docs.rs]
features = ["all-arch"]
[dependencies]
arbitrary = { version = "1.3.2", features = ["derive"] }
anyhow = { workspace = true, optional = true, features = ['std'] }
bumpalo = "3"
capstone = { workspace = true, optional = true }
cranelift-assembler-x64 = { path = "../assembler-x64", version = "0.117.0" }
cranelift-codegen-shared = { path = "./shared", version = "0.117.0" }
cranelift-entity = { workspace = true }
cranelift-bforest = { workspace = true }
cranelift-bitset = { workspace = true }
cranelift-control = { workspace = true }
hashbrown = { workspace = true }
target-lexicon = { workspace = true }
log = { workspace = true }
serde = { workspace = true, optional = true }
serde_derive = { workspace = true, optional = true }
pulley-interpreter = { workspace = true, optional = true }
postcard = { workspace = true, optional = true }
gimli = { workspace = true, features = ["write", "std"], optional = true }
smallvec = { workspace = true }
regalloc2 = { workspace = true, features = ["checker"] }
souper-ir = { version = "2.1.0", optional = true }
sha2 = { version = "0.10.2", optional = true }
rustc-hash = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
similar = "2.1.0"
env_logger = { workspace = true }
[build-dependencies]
cranelift-codegen-meta = { path = "meta", version = "0.117.0" }
cranelift-isle = { path = "../isle/isle", version = "=0.117.0" }
[features]
default = ["std", "unwind", "host-arch", "timing"]
std = ["serde?/std"]
core = []
disas = ["anyhow", "capstone"]
trace-log = ["regalloc2/trace-log"]
unwind = ["gimli"]
x86 = []
arm64 = []
s390x = []
riscv64 = []
pulley = [
"dep:pulley-interpreter",
"pulley-interpreter/encode",
"pulley-interpreter/disas",
"cranelift-codegen-meta/pulley",
]
host-arch = []
all-arch = ["all-native-arch", "pulley"]
all-native-arch = ["x86", "arm64", "s390x", "riscv64"]
enable-serde = [
"serde",
"serde_derive",
"cranelift-entity/enable-serde",
"cranelift-bitset/enable-serde",
"regalloc2/enable-serde",
"smallvec/serde",
]
incremental-cache = ["enable-serde", "postcard", "sha2"]
souper-harvest = ["souper-ir", "souper-ir/stringify"]
isle-errors = ["cranelift-isle/fancy-errors"]
timing = []
[[bench]]
name = "x64-evex-encoding"
harness = false