Files
wasmtime/cranelift/codegen/Cargo.toml
Nick Fitzgerald ae7688059d Cranelift: Use bump allocation in remove_constant_phis pass (#4710)
* Cranelift: Use bump allocation in `remove_constant_phis` pass

This makes compilation 2-6% faster for Sightglass's bz2 benchmark:

```
compilation :: cycles :: benchmarks/bz2/benchmark.wasm

  Δ = 7290648.36 ± 4245152.07 (confidence = 99%)

  bump.so is 1.02x to 1.06x faster than main.so!

  [166388177 183238542.98 214732518] bump.so
  [172836648 190529191.34 217514271] main.so

compilation :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm

  No difference in performance.

  [182220055 225793551.12 277857575] bump.so
  [193212613 227784078.61 277175335] main.so

compilation :: cycles :: benchmarks/spidermonkey/benchmark.wasm

  No difference in performance.

  [3848442474 4295214144.37 4665127241] bump.so
  [3969505457 4262415290.10 4563869974] main.so
```

* Add audit for `bumpalo`

* Add an audit of `arrayvec` version 0.7.2

* Remove unnecessary `collect` into `Vec`

I wasn't able to measure any perf difference here, but its nice to do anyways.

* Use a `SecondaryMap` for keeping track of summaries
2022-08-15 21:36:01 +00:00

114 lines
3.5 KiB
TOML

[package]
authors = ["The Cranelift Project Developers"]
name = "cranelift-codegen"
version = "0.88.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 = "2021"
[dependencies]
arrayvec = "0.7"
bumpalo = "3"
cranelift-codegen-shared = { path = "./shared", version = "0.88.0" }
cranelift-entity = { path = "../entity", version = "0.88.0" }
cranelift-bforest = { path = "../bforest", version = "0.88.0" }
hashbrown = { version = "0.12", optional = true }
target-lexicon = "0.12"
log = { version = "0.4.6", default-features = false }
serde = { version = "1.0.94", features = ["derive"], optional = true }
bincode = { version = "1.2.1", optional = true }
gimli = { version = "0.26.0", default-features = false, features = ["write"], optional = true }
smallvec = { version = "1.6.1" }
regalloc2 = { version = "0.3.2", features = ["checker"] }
souper-ir = { version = "2.1.0", optional = true }
sha2 = { version = "0.9.0", optional = true }
# It is a goal of the cranelift-codegen crate to have minimal external dependencies.
# Please don't add any unless they are essential to the task of creating binary
# machine code. Integration tests that need external dependencies can be
# accomodated in `tests`.
[dev-dependencies]
criterion = "0.3"
[build-dependencies]
cranelift-codegen-meta = { path = "meta", version = "0.88.0" }
cranelift-isle = { path = "../isle/isle", version = "=0.88.0" }
miette = { version = "5.1.0", features = ["fancy"], optional = true }
[features]
default = ["std", "unwind"]
# The "std" feature enables use of libstd. The "core" feature enables use
# of some minimal std-like replacement libraries. At least one of these two
# features need to be enabled.
std = []
# The "core" features enables use of "hashbrown" since core doesn't have
# a HashMap implementation, and a workaround for Cargo #4866.
core = ["hashbrown"]
# This enables some additional functions useful for writing tests, but which
# can significantly increase the size of the library.
testing_hooks = []
# Enables detailed logging which can be somewhat expensive.
trace-log = []
# This enables unwind info generation functionality.
unwind = ["gimli"]
# ISA targets for which we should build.
# If no ISA targets are explicitly enabled, the ISA target for the host machine is enabled.
x86 = []
arm64 = []
s390x = []
# Stub feature that does nothing, for Cargo-features compatibility: the new
# backend is the default now.
experimental_x64 = []
# Option to enable all architectures.
all-arch = [
"x86",
"arm64",
"s390x"
]
# For dependent crates that want to serialize some parts of cranelift
enable-serde = [
"serde",
"cranelift-entity/enable-serde",
"regalloc2/enable-serde",
"smallvec/serde"
]
# Enable the incremental compilation cache for hot-reload use cases.
incremental-cache = [
"enable-serde",
"bincode",
"sha2"
]
# Enable support for the Souper harvester.
souper-harvest = ["souper-ir", "souper-ir/stringify"]
# Provide fancy Miette-produced errors for ISLE.
isle-errors = ["miette", "cranelift-isle/miette-errors"]
# Put ISLE generated files in isle_generated_code/, for easier
# inspection, rather than inside of target/.
isle-in-source-tree = []
[badges]
maintenance = { status = "experimental" }
[[bench]]
name = "x64-evex-encoding"
harness = false