Skip to main content

Module points_to

Module points_to 

Source
Expand description

Andersen points-to analysis (DF-3).

Prepare a graph for points-to subset closure:

use weir::points_to::prepare_points_to_subset_graph;

let graph = prepare_points_to_subset_graph(
    2,
    &[0, 1, 1],
    &[1],
    &[0xFFFF_FFFF],
).unwrap();
assert_eq!(graph.node_count(), 2);

DF-3 - Andersen points-to, field-sensitive at struct granularity.

Andersen’s analysis on the SSA constraint graph reduces to forward transitive closure over subset edges. This façade keeps the public API stable while implementation duties live in focused submodules.

Structs§

PointsTo
Marker type for the Andersen points-to dataflow primitive.
PointsToFamily

Functions§

andersen_points_to
Build one Andersen propagation step. Caller MUST supply the real constraint-graph shape (node_count, edge_count) so the emitted Program is dispatched at the correct grid size. The current points-to bitset is read from constraints_in and the expanded bitset after one subset-edge traversal is written to pts_out. Host iterates to fixpoint.
andersen_points_to_with_shapeDeprecated
Deprecated alias for back-compat with callers that imported the pre-fix name andersen_points_to_with_shape. Same semantics as andersen_points_to.
prepare_points_to_subset_graph
prepare_points_to_subset_graph_into
Repack points-to subset graph buffers into an existing prepared graph.
prepare_points_to_subset_plan
prepare_points_to_subset_plan_into
Repack points-to subset graph buffers and refresh the emitted Program in place.
subset_closure_borrowed_into_result_with_scratch_via
subset_closure_borrowed_into_via
subset_closure_borrowed_into_with_scratch_via
subset_closure_borrowed_via
subset_closure_plan_borrowed_into_result_with_scratch_via
subset_closure_plan_borrowed_into_with_scratch_via
subset_closure_prepared_borrowed_into_result_with_scratch_via
subset_closure_prepared_borrowed_into_with_scratch_via
subset_closure_resident_plan_with_backend_scratch
subset_closure_resident_plan_with_backend_scratch_into
subset_closure_resident_plan_with_reusable_frontier_scratch
subset_closure_resident_plan_with_reusable_frontier_scratch_into
subset_closure_resident_plan_with_reusable_frontier_scratch_sequence_window
subset_closure_resident_plan_with_reusable_frontier_scratch_sequence_window_into
subset_closure_resident_plan_with_scratch
subset_closure_resident_plan_with_scratch_into
subset_closure_via