1#[cfg(any(test, feature = "cpu-parity"))]
29mod oracle;
30mod plan;
31mod program;
32#[cfg(test)]
33mod tests;
34
35pub(crate) const OP_ID: &str = "weir::slice";
36
37crate::define_analysis_family! {
38 family: SliceFamily,
39 kind: crate::fixed_point_graph::FixedPointAnalysisKind::Slice,
40 name: "slice_closure",
41 program_builder: backward_slice,
42 graph_prep: plan::prepare_slice_graph,
43 graph_prep_scratch: plan::prepare_slice_graph_with_scratch,
44 input_buffer: "fin",
45 output_buffer: "fout",
46 closure_prefix: slice_closure,
47 resident_prefix: slice_closure_resident,
48 word_capacity: "slice_closure",
49 frontier_output: "slice frontier",
50 resident_capacity: "slice_closure resident",
51 resident_output: "slice frontier",
52 visibility: pub,
53}
54
55#[cfg(any(test, feature = "cpu-parity"))]
56#[allow(deprecated)]
57pub(crate) use oracle::slice_closure_cpu;
58pub use plan::{
59 prepare_slice_graph, prepare_slice_graph_into, prepare_slice_graph_with_scratch,
60 prepare_slice_plan, prepare_slice_plan_into,
61};
62#[allow(deprecated)]
63pub use program::{backward_slice, backward_slice_with_shape, BackwardSlice};
64
65#[cfg(test)]
66use vyre::ir::Program;
67#[cfg(test)]
68use vyre_primitives::graph::program_graph::ProgramGraphShape;