weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
[package]
name = "weir"
version = "0.1.0"
edition = "2021"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
description = "GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines."
readme = "README.md"
repository = "https://github.com/santhsecurity/weir"
homepage = "https://github.com/santhsecurity/weir"
documentation = "https://docs.rs/weir"
keywords = ["dataflow", "ifds", "ssa", "gpu", "static-analysis"]
categories = ["compilers", "development-tools", "algorithms"]
[lib]
path = "src/lib.rs"

[[example]]
name = "serde_evidence"
required-features = ["serde"]

[[test]]
name = "bitset_and_query_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "callgraph_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "df_adversarial_oracles"
required-features = ["cpu-parity"]

[[test]]
name = "df_cross_language"
required-features = ["cpu-parity"]

[[test]]
name = "df_cross_primitive_composition"
required-features = ["cpu-parity"]

[[test]]
name = "df_dominators_construction"
required-features = ["cpu-parity"]

[[test]]
name = "df_fuzz_bitset_oracles"
required-features = ["cpu-parity"]

[[test]]
name = "df_gap_bitset_oracle_edges"
required-features = ["cpu-parity"]

[[test]]
name = "df_live_at_escapes"
required-features = ["cpu-parity"]

[[test]]
name = "df_may_alias_construction"
required-features = ["cpu-parity"]

[[test]]
name = "df_must_init_scc_query"
required-features = ["cpu-parity"]

[[test]]
name = "df_parity_dominators"
required-features = ["cpu-parity"]

[[test]]
name = "df_parity_exact_primitives"
required-features = ["cpu-parity"]

[[test]]
name = "df_parity_may_alias"
required-features = ["cpu-parity"]

[[test]]
name = "df_perf_oracle_throughput"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_bitset_oracles"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_bitset_oracles_extended"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_control_dependence"
required-features = ["cpu-parity"]

[[test]]
name = "df_cross_analysis_oracle_laws"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_cross_language"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_dominators"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_may_alias"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_range_check"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_reaching_def_escapes"
required-features = ["cpu-parity"]

[[test]]
name = "df_property_value_set"
required-features = ["cpu-parity"]

[[test]]
name = "df_range_check_construction"
required-features = ["cpu-parity"]

[[test]]
name = "df_scale_oracle_no_oom"
required-features = ["cpu-parity"]

[[test]]
name = "df_slice_reaching_def_control_dep"
required-features = ["cpu-parity"]

[[test]]
name = "df_value_set_post_dominates"
required-features = ["cpu-parity"]

[[test]]
name = "dominators_gpu_parity"
required-features = ["cpu-parity"]


[[test]]
name = "ifds_gpu_solve_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "ifds_reach_closure_gpu_parity"
required-features = ["cpu-parity"]


[[test]]
name = "live_closure_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "loop_summarize_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "non_bitset_and_query_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "points_to_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "range_propagate_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "reaching_closure_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "reaching_def_summary_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "slice_closure_gpu_parity"
required-features = ["cpu-parity"]

[[test]]
name = "summarize_function_gpu_parity"
required-features = ["cpu-parity"]

[workspace.dependencies]
bytemuck = { version = "=1.25.0", features = ["derive"] }
criterion = { version = "=0.5.1", features = ["html_reports"] }
rand = { version = "=0.9.4", features = ["std", "std_rng"] }
serde_json = "=1.0.150"
smallvec = { version = "^1.15.1", features = ["serde"] }
vyre-driver = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-driver" }

[features]
default = ["test-harness"]
cpu-parity = ["vyre-primitives/cpu-parity"]
gpu-telemetry = []
serde = ["dep:serde", "vyre-foundation/serde"]
simd-oracle = []
test-harness = ["vyre-primitives/cpu-parity"]

[dependencies]
bytemuck = { workspace = true }
inventory = "0.3.17"
paste = "1.0.15"
serde = { version = "1.0.228", features = ["derive"], optional = true }
serde_json = { workspace = true }
rand = { workspace = true }
smallvec = { workspace = true }
vyre = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-core" }
vyre-driver = { workspace = true }
vyre-foundation = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-foundation" }
vyre-harness = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-harness" }
vyre-primitives = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-primitives", features = ["graph", "hash", "fixpoint", "predicate"] }

[dev-dependencies]
criterion.workspace = true
proptest = "1.9.0"
static_assertions = "1.1.0"
surge-source = { version = "0.1.0", path = "../../surge-source" }
vyre-primitives = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-primitives", features = ["cpu-parity"] }
vyre-driver = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-driver" }
vyre-driver-cuda = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-driver-cuda" }
vyre-driver-reference = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-driver-reference" }
# vyre-driver-wgpu = { version = "0.4.2", path = "../../performance/matching/vyre/vyre-driver-wgpu" }

[[bin]]
name = "corpus_expander"
path = "src/bin/corpus_expander.rs"

[[bench]]
name = "primitive_micro"
harness = false

[[bench]]
name = "primitive_scale"
harness = false

[[bench]]
name = "resident_fixed_point_hot_path"
harness = false

[[bench]]
name = "ifds_direct_resident_hot_path"
harness = false
required-features = ["cpu-parity"]

[[bench]]
name = "csr_normalize"
harness = false

[[bench]]
name = "bitset_closure_oracle"
harness = false
required-features = ["cpu-parity"]

[[bench]]
name = "reaching_def_summary_sharded"
harness = false
required-features = ["cpu-parity"]

[[bench]]
name = "fixed_point_scratch_telemetry"
harness = false

[[bench]]
name = "dominators_cpu_oracle"
harness = false
required-features = ["cpu-parity"]

[[bench]]
name = "ifds_cpu_oracle_hot_path"
harness = false
required-features = ["cpu-parity"]

[[test]]
name = "parameterized_analysis_matrix"
required-features = ["test-harness"]

[[test]]
name = "df_parity_inventory_sweep"
required-features = ["cpu-parity"]