[package]
edition = "2021"
rust-version = "1.85"
name = "weirflow"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines."
homepage = "https://github.com/santhsecurity/weir"
documentation = "https://docs.rs/weirflow"
readme = "README.md"
keywords = [
"dataflow",
"ifds",
"ssa",
"gpu",
"static-analysis",
]
categories = [
"compilers",
"development-tools",
"algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/santhsecurity/weir"
[features]
cpu-parity = ["vyre-primitives/cpu-parity"]
default = ["test-harness"]
gpu-telemetry = []
legacy-infallible = []
serde = [
"dep:serde",
"vyre-foundation/serde",
]
simd-oracle = []
surge-frontend-tests = []
test-harness = ["vyre-primitives/cpu-parity"]
[lib]
name = "weir"
path = "src/lib.rs"
[[bin]]
name = "corpus_expander"
path = "src/bin/corpus_expander.rs"
[[example]]
name = "ifds_to_witness"
path = "examples/ifds_to_witness.rs"
[[example]]
name = "serde_evidence"
path = "examples/serde_evidence.rs"
required-features = ["serde"]
[[example]]
name = "witness_many"
path = "examples/witness_many.rs"
[[test]]
name = "adversarial_stress_suite"
path = "tests/adversarial_stress_suite.rs"
[[test]]
name = "api_surface_stability"
path = "tests/api_surface_stability.rs"
[[test]]
name = "bitset_and_query_gpu_parity"
path = "tests/bitset_and_query_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "callgraph_gpu_parity"
path = "tests/callgraph_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "campaign_wave2_flowgraph"
path = "tests/campaign_wave2_flowgraph.rs"
[[test]]
name = "check_reverse"
path = "tests/check_reverse.rs"
[[test]]
name = "cross_language_matrix"
path = "tests/cross_language_matrix.rs"
required-features = ["surge-frontend-tests"]
[[test]]
name = "df_adversarial_cfg_dominators"
path = "tests/df_adversarial_cfg_dominators.rs"
[[test]]
name = "df_adversarial_csr_validate"
path = "tests/df_adversarial_csr_validate.rs"
[[test]]
name = "df_adversarial_oracles"
path = "tests/df_adversarial_oracles.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_anchor_bit_codegen"
path = "tests/df_anchor_bit_codegen.rs"
[[test]]
name = "df_cross_analysis_oracle_laws"
path = "tests/df_cross_analysis_oracle_laws.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_cross_arm_raw_atomic"
path = "tests/df_cross_arm_raw_atomic.rs"
[[test]]
name = "df_cross_language"
path = "tests/df_cross_language.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_cross_primitive_composition"
path = "tests/df_cross_primitive_composition.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_def_use"
path = "tests/df_def_use.rs"
[[test]]
name = "df_dominators_construction"
path = "tests/df_dominators_construction.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_escape_callgraph_range"
path = "tests/df_escape_callgraph_range.rs"
[[test]]
name = "df_fuzz_bitset_oracles"
path = "tests/df_fuzz_bitset_oracles.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_gap_bitset_oracle_edges"
path = "tests/df_gap_bitset_oracle_edges.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_ifds_construction"
path = "tests/df_ifds_construction.rs"
[[test]]
name = "df_live_at_escapes"
path = "tests/df_live_at_escapes.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_live_construction"
path = "tests/df_live_construction.rs"
[[test]]
name = "df_may_alias_construction"
path = "tests/df_may_alias_construction.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_must_init_scc_query"
path = "tests/df_must_init_scc_query.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_parity_dominators"
path = "tests/df_parity_dominators.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_parity_exact_primitives"
path = "tests/df_parity_exact_primitives.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_parity_inventory_sweep"
path = "tests/df_parity_inventory_sweep.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_parity_may_alias"
path = "tests/df_parity_may_alias.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_perf_oracle_throughput"
path = "tests/df_perf_oracle_throughput.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_bitset_oracles"
path = "tests/df_property_bitset_oracles.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_bitset_oracles_extended"
path = "tests/df_property_bitset_oracles_extended.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_control_dependence"
path = "tests/df_property_control_dependence.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_cross_language"
path = "tests/df_property_cross_language.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_def_use"
path = "tests/df_property_def_use.rs"
[[test]]
name = "df_property_dominator_tree_laws"
path = "tests/df_property_dominator_tree_laws.rs"
[[test]]
name = "df_property_dominators"
path = "tests/df_property_dominators.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_graph_layout"
path = "tests/df_property_graph_layout.rs"
[[test]]
name = "df_property_ifds"
path = "tests/df_property_ifds.rs"
[[test]]
name = "df_property_may_alias"
path = "tests/df_property_may_alias.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_points_to"
path = "tests/df_property_points_to.rs"
[[test]]
name = "df_property_range_check"
path = "tests/df_property_range_check.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_range_escape"
path = "tests/df_property_range_escape.rs"
[[test]]
name = "df_property_reachability_witness"
path = "tests/df_property_reachability_witness.rs"
[[test]]
name = "df_property_reaching_def_escapes"
path = "tests/df_property_reaching_def_escapes.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_property_reaching_def_summary"
path = "tests/df_property_reaching_def_summary.rs"
[[test]]
name = "df_property_slice_construction"
path = "tests/df_property_slice_construction.rs"
[[test]]
name = "df_property_ssa_dominators"
path = "tests/df_property_ssa_dominators.rs"
[[test]]
name = "df_property_ssa_rename"
path = "tests/df_property_ssa_rename.rs"
[[test]]
name = "df_property_summary_callgraph"
path = "tests/df_property_summary_callgraph.rs"
[[test]]
name = "df_property_value_set"
path = "tests/df_property_value_set.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_range_check_construction"
path = "tests/df_range_check_construction.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_reachability_witness"
path = "tests/df_reachability_witness.rs"
[[test]]
name = "df_reaching_construction"
path = "tests/df_reaching_construction.rs"
[[test]]
name = "df_resolve_family_node39"
path = "tests/df_resolve_family_node39.rs"
[[test]]
name = "df_scale_oracle_no_oom"
path = "tests/df_scale_oracle_no_oom.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_slice_reaching_def_control_dep"
path = "tests/df_slice_reaching_def_control_dep.rs"
required-features = ["cpu-parity"]
[[test]]
name = "df_soundness_tags"
path = "tests/df_soundness_tags.rs"
[[test]]
name = "df_ssa_dominators"
path = "tests/df_ssa_dominators.rs"
[[test]]
name = "df_summary_loop_points"
path = "tests/df_summary_loop_points.rs"
[[test]]
name = "df_three_arm_fusion"
path = "tests/df_three_arm_fusion.rs"
[[test]]
name = "df_value_set_post_dominates"
path = "tests/df_value_set_post_dominates.rs"
required-features = ["cpu-parity"]
[[test]]
name = "dfm_pt_struct_field"
path = "tests/dfm_pt_struct_field.rs"
required-features = ["surge-frontend-tests"]
[[test]]
name = "dfm_pt_union_aliasing"
path = "tests/dfm_pt_union_aliasing.rs"
[[test]]
name = "dfm_range_add_bounded"
path = "tests/dfm_range_add_bounded.rs"
[[test]]
name = "dfm_range_clamp_to_cap"
path = "tests/dfm_range_clamp_to_cap.rs"
[[test]]
name = "dispatch_decode_modularity"
path = "tests/dispatch_decode_modularity.rs"
[[test]]
name = "dominators_gpu_parity"
path = "tests/dominators_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "examples_build"
path = "tests/examples_build.rs"
[[test]]
name = "feature_gate_contract"
path = "tests/feature_gate_contract.rs"
[[test]]
name = "fixed_point_scratch_contract"
path = "tests/fixed_point_scratch_contract.rs"
[[test]]
name = "gpu_abi_chokepoint_contract"
path = "tests/gpu_abi_chokepoint_contract.rs"
[[test]]
name = "ifds_direct_resident_structure"
path = "tests/ifds_direct_resident_structure.rs"
[[test]]
name = "ifds_gpu_solve_gpu_parity"
path = "tests/ifds_gpu_solve_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "ifds_reach_closure_gpu_parity"
path = "tests/ifds_reach_closure_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "ifds_resident_download_scratch_contract"
path = "tests/ifds_resident_download_scratch_contract.rs"
[[test]]
name = "legoblock_composition"
path = "tests/legoblock_composition.rs"
[[test]]
name = "live_closure_gpu_parity"
path = "tests/live_closure_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "loop_summarize_gpu_parity"
path = "tests/loop_summarize_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "non_bitset_and_query_gpu_parity"
path = "tests/non_bitset_and_query_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "oracle_boundary"
path = "tests/oracle_boundary.rs"
[[test]]
name = "output_scratch_contract"
path = "tests/output_scratch_contract.rs"
[[test]]
name = "parameterized_analysis_matrix"
path = "tests/parameterized_analysis_matrix.rs"
required-features = ["test-harness"]
[[test]]
name = "points_to_gpu_parity"
path = "tests/points_to_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "proptest_graph_layout_normalize"
path = "tests/proptest_graph_layout_normalize.rs"
[[test]]
name = "proptest_graph_layout_stable_hash"
path = "tests/proptest_graph_layout_stable_hash.rs"
[[test]]
name = "proptest_oracle_bitset_laws"
path = "tests/proptest_oracle_bitset_laws.rs"
[[test]]
name = "proptest_oracle_graph_reaching_closure"
path = "tests/proptest_oracle_graph_reaching_closure.rs"
[[test]]
name = "proptest_oracle_summary_may_alias"
path = "tests/proptest_oracle_summary_may_alias.rs"
[[test]]
name = "proptest_reaching_def_summary"
path = "tests/proptest_reaching_def_summary.rs"
[[test]]
name = "proptest_regression_manifest"
path = "tests/proptest_regression_manifest.rs"
[[test]]
name = "proptest_ssa_dominance_frontiers"
path = "tests/proptest_ssa_dominance_frontiers.rs"
[[test]]
name = "proptest_ssa_dominators_random_cfg"
path = "tests/proptest_ssa_dominators_random_cfg.rs"
[[test]]
name = "proptest_ssa_place_phi"
path = "tests/proptest_ssa_place_phi.rs"
[[test]]
name = "range_propagate_gpu_parity"
path = "tests/range_propagate_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "reaching_closure_gpu_parity"
path = "tests/reaching_closure_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "reaching_def_summary_gpu_parity"
path = "tests/reaching_def_summary_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "release_evidence_contract"
path = "tests/release_evidence_contract.rs"
[[test]]
name = "release_surface_contract"
path = "tests/release_surface_contract.rs"
[[test]]
name = "resident_benchmark_contract"
path = "tests/resident_benchmark_contract.rs"
[[test]]
name = "should_panic_garden"
path = "tests/should_panic_garden.rs"
[[test]]
name = "slice_closure_gpu_parity"
path = "tests/slice_closure_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "source_boundary"
path = "tests/source_boundary.rs"
[[test]]
name = "summarize_function_gpu_parity"
path = "tests/summarize_function_gpu_parity.rs"
required-features = ["cpu-parity"]
[[test]]
name = "tmp_debug"
path = "tests/tmp_debug.rs"
[[test]]
name = "tmp_debug2"
path = "tests/tmp_debug2.rs"
[[test]]
name = "tmp_debug3"
path = "tests/tmp_debug3.rs"
[[test]]
name = "tmp_debug4"
path = "tests/tmp_debug4.rs"
[[bench]]
name = "bitset_closure_oracle"
path = "benches/bitset_closure_oracle.rs"
harness = false
required-features = ["cpu-parity"]
[[bench]]
name = "bitset_closure_oracle_test"
path = "benches/bitset_closure_oracle_test.rs"
[[bench]]
name = "csr_normalize"
path = "benches/csr_normalize.rs"
harness = false
[[bench]]
name = "dominators_cpu_oracle"
path = "benches/dominators_cpu_oracle.rs"
harness = false
required-features = ["cpu-parity"]
[[bench]]
name = "fixed_point_scratch_telemetry"
path = "benches/fixed_point_scratch_telemetry.rs"
harness = false
[[bench]]
name = "ifds_cpu_oracle_hot_path"
path = "benches/ifds_cpu_oracle_hot_path.rs"
harness = false
required-features = ["cpu-parity"]
[[bench]]
name = "ifds_direct_resident_hot_path"
path = "benches/ifds_direct_resident_hot_path.rs"
harness = false
[[bench]]
name = "primitive_micro"
path = "benches/primitive_micro.rs"
harness = false
[[bench]]
name = "primitive_scale"
path = "benches/primitive_scale.rs"
harness = false
[[bench]]
name = "reaching_def_summary_sharded"
path = "benches/reaching_def_summary_sharded.rs"
harness = false
required-features = ["cpu-parity"]
[[bench]]
name = "resident_fixed_point_hot_path"
path = "benches/resident_fixed_point_hot_path.rs"
harness = false
[[bench]]
name = "scalar_opt_test_bak"
path = "benches/scalar_opt_test_bak.rs"
[dependencies.bytemuck]
version = "1"
features = ["derive"]
[dependencies.inventory]
version = "=0.3.24"
[dependencies.paste]
version = "1"
[dependencies.rand]
version = "=0.9.4"
features = [
"std",
"std_rng",
]
[dependencies.serde]
version = "1.0.228"
features = [
"derive",
"rc",
]
optional = true
[dependencies.serde_json]
version = "1.0.149"
features = ["raw_value"]
[dependencies.smallvec]
version = "1.11"
features = ["serde"]
[dependencies.vyre]
version = "0.6.5"
default-features = false
[dependencies.vyre-driver]
version = "0.6.5"
[dependencies.vyre-foundation]
version = "0.6.5"
[dependencies.vyre-harness]
version = "0.6.5"
[dependencies.vyre-primitives]
version = "0.6.5"
features = [
"graph",
"hash",
"fixpoint",
"predicate",
]
default-features = false
[dev-dependencies.criterion]
version = "0.5.1"
[dev-dependencies.proptest]
version = "1.9.0"
[dev-dependencies.static_assertions]
version = "1.1"
[dev-dependencies.vyre-driver]
version = "0.6.5"
[dev-dependencies.vyre-driver-cuda]
version = "0.6.5"
[dev-dependencies.vyre-driver-reference]
version = "0.6.5"
[dev-dependencies.vyre-driver-wgpu]
version = "0.6.5"
[dev-dependencies.vyre-primitives]
version = "0.6.5"
features = ["cpu-parity"]
default-features = false