backend-lang 0.4.0

Native backend: instruction selection from ir-lang, SSA register allocation with stack maps, and x86-64 emission through isa-lang.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "backend-lang"
version = "0.4.0"
authors = ["James Gober <me@jamesgober.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Native backend: instruction selection from ir-lang, SSA register allocation with stack maps, and x86-64 emission through isa-lang."
homepage = "https://github.com/jamesgober/backend-lang"
documentation = "https://docs.rs/backend-lang"
readme = "README.md"
keywords = [
    "backend",
    "codegen",
    "register-allocation",
    "compiler",
    "lexersketch",
]
categories = [
    "compilers",
    "development-tools",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/jamesgober/backend-lang"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["std"]
std = [
    "isa-lang/std",
    "ir-lang/std",
]

[lib]
name = "backend_lang"
path = "src/lib.rs"

[[example]]
name = "compile"
path = "examples/compile.rs"

[[example]]
name = "emit"
path = "examples/emit.rs"

[[example]]
name = "moves"
path = "examples/moves.rs"

[[example]]
name = "ops_v2"
path = "examples/ops_v2.rs"

[[test]]
name = "differential"
path = "tests/differential.rs"

[[test]]
name = "emit"
path = "tests/emit.rs"

[[test]]
name = "executable"
path = "tests/executable.rs"

[[test]]
name = "hostile"
path = "tests/hostile.rs"

[[test]]
name = "link"
path = "tests/link.rs"

[[test]]
name = "mir"
path = "tests/mir.rs"

[[test]]
name = "moves"
path = "tests/moves.rs"

[[test]]
name = "native"
path = "tests/native.rs"

[[test]]
name = "ops"
path = "tests/ops.rs"

[[test]]
name = "regalloc"
path = "tests/regalloc.rs"

[[test]]
name = "select"
path = "tests/select.rs"

[[test]]
name = "stackmaps"
path = "tests/stackmaps.rs"

[[test]]
name = "table"
path = "tests/table.rs"

[[test]]
name = "variables"
path = "tests/variables.rs"

[[bench]]
name = "bench"
path = "benches/bench.rs"
harness = false

[dependencies.ir-lang]
version = "=2.0.0-alpha.3"
default-features = false

[dependencies.isa-lang]
version = "0.2"
default-features = false

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.ir-lang]
version = "=2.0.0-alpha.3"
features = ["interp"]

[dev-dependencies.object-lang]
version = "0.2"

[dev-dependencies.proptest]
version = "1"

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = "symbols"