1[package] 2authors = ["The Cranelift Project Developers"] 3name = "cranelift-codegen" 4version = "0.85.0" 5description = "Low-level code generator library" 6license = "Apache-2.0 WITH LLVM-exception" 7documentation = "https://docs.rs/cranelift-codegen" 8repository = "https://github.com/bytecodealliance/wasmtime" 9categories = ["no-std"] 10readme = "README.md" 11keywords = ["compile", "compiler", "jit"] 12build = "build.rs" 13edition = "2021" 14 15[dependencies] 16cranelift-codegen-shared = { path = "./shared", version = "0.85.0" } 17cranelift-entity = { path = "../entity", version = "0.85.0" } 18cranelift-bforest = { path = "../bforest", version = "0.85.0" } 19hashbrown = { version = "0.11", optional = true } 20target-lexicon = "0.12" 21log = { version = "0.4.6", default-features = false } 22serde = { version = "1.0.94", features = ["derive"], optional = true } 23bincode = { version = "1.2.1", optional = true } 24gimli = { version = "0.26.0", default-features = false, features = ["write"], optional = true } 25smallvec = { version = "1.6.1" } 26regalloc2 = { version = "0.1.2", features = ["checker"] } 27souper-ir = { version = "2.1.0", optional = true } 28# It is a goal of the cranelift-codegen crate to have minimal external dependencies. 29# Please don't add any unless they are essential to the task of creating binary 30# machine code. Integration tests that need external dependencies can be 31# accomodated in `tests`. 32 33[dev-dependencies] 34criterion = "0.3" 35 36[build-dependencies] 37cranelift-codegen-meta = { path = "meta", version = "0.85.0" } 38cranelift-isle = { path = "../isle/isle", version = "=0.85.0", optional = true } 39miette = { version = "3", features = ["fancy"], optional = true } 40 41[features] 42default = ["std", "unwind"] 43 44# The "std" feature enables use of libstd. The "core" feature enables use 45# of some minimal std-like replacement libraries. At least one of these two 46# features need to be enabled. 47std = [] 48 49# The "core" features enables use of "hashbrown" since core doesn't have 50# a HashMap implementation, and a workaround for Cargo #4866. 51core = ["hashbrown"] 52 53# This enables some additional functions useful for writing tests, but which 54# can significantly increase the size of the library. 55testing_hooks = [] 56 57# This enables unwind info generation functionality. 58unwind = ["gimli"] 59 60# ISA targets for which we should build. 61# If no ISA targets are explicitly enabled, the ISA target for the host machine is enabled. 62x86 = [] 63arm64 = [] 64s390x = [] 65 66# Stub feature that does nothing, for Cargo-features compatibility: the new 67# backend is the default now. 68experimental_x64 = [] 69 70# Option to enable all architectures. 71all-arch = [ 72 "x86", 73 "arm64", 74 "s390x" 75] 76 77# For dependent crates that want to serialize some parts of cranelift 78enable-serde = [ 79 "serde", 80 "cranelift-entity/enable-serde", 81 "regalloc2/enable-serde", 82] 83 84# Enable support for the Souper harvester. 85souper-harvest = ["souper-ir", "souper-ir/stringify"] 86 87# Recompile ISLE DSL source files into their generated Rust code. 88rebuild-isle = ["cranelift-isle", "miette", "cranelift-codegen-meta/rebuild-isle"] 89 90# A hack to skip the ISLE-rebuild logic when testing for determinism 91# with the "Meta deterministic check" CI job. 92completely-skip-isle-for-ci-deterministic-check = [] 93 94[badges] 95maintenance = { status = "experimental" } 96 97[[bench]] 98name = "x64-evex-encoding" 99harness = false 100