[package]
edition = "2024"
rust-version = "1.89.0"
name = "cranelift-codegen"
version = "0.127.3"
authors = ["The Cranelift Project Developers"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Low-level code generator library"
documentation = "https://docs.rs/cranelift-codegen"
readme = "README.md"
keywords = [
"compile",
"compiler",
"jit",
]
categories = ["no-std"]
license = "Apache-2.0 WITH LLVM-exception"
repository = "https://github.com/bytecodealliance/wasmtime"
resolver = "2"
[package.metadata.docs.rs]
features = ["all-arch"]
[features]
all-arch = [
"all-native-arch",
"pulley",
]
all-native-arch = [
"x86",
"arm64",
"s390x",
"riscv64",
]
arm64 = []
core = []
default = [
"std",
"unwind",
"host-arch",
"timing",
]
disas = [
"anyhow",
"capstone",
]
enable-serde = [
"serde",
"serde_derive",
"cranelift-entity/enable-serde",
"cranelift-bitset/enable-serde",
"regalloc2/enable-serde",
"smallvec/serde",
]
host-arch = []
incremental-cache = [
"enable-serde",
"postcard",
"sha2",
]
isle-errors = ["cranelift-isle/fancy-errors"]
pulley = [
"dep:pulley-interpreter",
"pulley-interpreter/encode",
"pulley-interpreter/disas",
"cranelift-codegen-meta/pulley",
]
riscv64 = []
s390x = []
souper-harvest = [
"souper-ir",
"souper-ir/stringify",
]
std = ["serde?/std"]
timing = []
trace-log = ["regalloc2/trace-log"]
unwind = ["gimli"]
x86 = []
[lib]
name = "cranelift_codegen"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1.0.100"
features = ["std"]
optional = true
default-features = false
[dependencies.bumpalo]
version = "3"
[dependencies.capstone]
version = "0.13.0"
optional = true
[dependencies.cranelift-assembler-x64]
version = "0.127.3"
[dependencies.cranelift-bforest]
version = "0.127.3"
[dependencies.cranelift-bitset]
version = "0.127.3"
[dependencies.cranelift-codegen-shared]
version = "0.127.3"
[dependencies.cranelift-control]
version = "0.127.3"
[dependencies.cranelift-entity]
version = "0.127.3"
[dependencies.gimli]
version = "0.32.3"
features = [
"read",
"write",
"std",
]
optional = true
default-features = false
[dependencies.hashbrown]
version = "0.15"
default-features = false
[dependencies.log]
version = "0.4.28"
default-features = false
[dependencies.postcard]
version = "1.1.3"
features = ["alloc"]
optional = true
default-features = false
[dependencies.pulley-interpreter]
version = "=40.0.3"
optional = true
[dependencies.regalloc2]
version = "0.13.3"
features = ["checker"]
[dependencies.rustc-hash]
version = "2.1.1"
[dependencies.serde]
version = "1.0.228"
features = ["alloc"]
optional = true
default-features = false
[dependencies.serde_derive]
version = "1.0.228"
optional = true
[dependencies.sha2]
version = "0.10.2"
optional = true
[dependencies.smallvec]
version = "1.15.1"
features = ["union"]
[dependencies.souper-ir]
version = "2.1.0"
optional = true
[dependencies.target-lexicon]
version = "0.13.0"
[dependencies.wasmtime-math]
version = "=40.0.3"
package = "wasmtime-internal-math"
[dev-dependencies.criterion]
version = "0.7.0"
features = [
"html_reports",
"rayon",
]
default-features = false
[dev-dependencies.env_logger]
version = "0.11.5"
[dev-dependencies.proptest]
version = "1.0.0"
[dev-dependencies.similar]
version = "2.1.0"
[build-dependencies.cranelift-codegen-meta]
version = "0.127.3"
[build-dependencies.cranelift-isle]
version = "=0.127.3"
[lints.clippy]
allow_attributes_without_reason = "warn"
clone_on_copy = "warn"
extra_unused_type_parameters = "warn"
from_over_into = "warn"
manual_strip = "warn"
map_clone = "warn"
multiple_bound_locations = "warn"
redundant_field_names = "warn"
uninlined_format_args = "warn"
unnecessary_cast = "warn"
unnecessary_fallible_conversions = "warn"
unnecessary_mut_passed = "warn"
unnecessary_to_owned = "warn"
useless_conversion = "warn"
[lints.clippy.all]
level = "allow"
priority = -1
[lints.rust]
trivial_numeric_casts = "warn"
unstable_features = "warn"
unused-lifetimes = "warn"
unused-macro-rules = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(pulley_tail_calls)",
"cfg(pulley_assume_llvm_makes_tail_calls)",
"cfg(pulley_disable_interp_simd)",
]