1[package] 2authors = ["The Cranelift Project Developers"] 3name = "cranelift-codegen" 4version = "0.88.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.88.0" } 17cranelift-entity = { path = "../entity", version = "0.88.0" } 18cranelift-bforest = { path = "../bforest", version = "0.88.0" } 19hashbrown = { version = "0.12", 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.3.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.88.0" } 38cranelift-isle = { path = "../isle/isle", version = "=0.88.0" } 39miette = { version = "5.1.0", 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# Enables detailed logging which can be somewhat expensive. 58trace-log = [] 59 60# This enables unwind info generation functionality. 61unwind = ["gimli"] 62 63# ISA targets for which we should build. 64# If no ISA targets are explicitly enabled, the ISA target for the host machine is enabled. 65x86 = [] 66arm64 = [] 67s390x = [] 68 69# Stub feature that does nothing, for Cargo-features compatibility: the new 70# backend is the default now. 71experimental_x64 = [] 72 73# Option to enable all architectures. 74all-arch = [ 75 "x86", 76 "arm64", 77 "s390x" 78] 79 80# For dependent crates that want to serialize some parts of cranelift 81enable-serde = [ 82 "serde", 83 "cranelift-entity/enable-serde", 84 "regalloc2/enable-serde", 85] 86 87# Enable support for the Souper harvester. 88souper-harvest = ["souper-ir", "souper-ir/stringify"] 89 90# Provide fancy Miette-produced errors for ISLE. 91isle-errors = ["miette", "cranelift-isle/miette-errors"] 92 93# Put ISLE generated files in isle_generated_code/, for easier 94# inspection, rather than inside of target/. 95isle-in-source-tree = [] 96 97[badges] 98maintenance = { status = "experimental" } 99 100[[bench]] 101name = "x64-evex-encoding" 102harness = false 103