1mod graph;
2#[cfg(any(test, feature = "cpu-parity"))]
3mod oracle;
4mod plan;
5mod program;
6#[cfg(test)]
7#[allow(deprecated)]
8mod tests;
9
10pub(crate) const OP_ID: &str = "weir::live";
11
12crate::define_analysis_family! {
13 family: LiveFamily,
14 kind: crate::fixed_point_graph::FixedPointAnalysisKind::Live,
15 name: "live_closure",
16 program_builder: live_step,
17 graph_prep: plan::prepare_live_graph,
18 graph_prep_scratch: plan::prepare_live_graph_with_scratch,
19 input_buffer: "fin",
20 output_buffer: "fout",
21 closure_prefix: live_closure,
22 resident_prefix: live_closure_resident,
23 word_capacity: "live_closure",
24 frontier_output: "frontier",
25 resident_capacity: "live_closure resident",
26 resident_output: "frontier",
27 visibility: pub,
28}
29
30#[cfg(any(test, feature = "cpu-parity"))]
31#[allow(deprecated)]
32pub(crate) use oracle::live_closure_cpu;
33pub use plan::{
34 prepare_live_graph, prepare_live_graph_into, prepare_live_graph_into_with_scratch,
35 prepare_live_graph_with_scratch, prepare_live_plan, prepare_live_plan_into,
36 prepare_live_plan_into_with_scratch, prepare_live_plan_with_scratch,
37};
38pub use program::{live_step, Liveness};
39
40#[cfg(test)]
41use graph::live_reverse_control_csr;
42#[cfg(test)]
43use vyre::ir::Program;
44#[cfg(test)]
45use vyre_primitives::graph::program_graph::ProgramGraphShape;