mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
dc05030dd6
Move all per-function state and logic into a new SegregateFunctionStack worker, so the pass class itself only holds module-wide state and the runOnFunction body is just upgrade() + segregate(). The discovery loop now uses the MFP ExtraState surface to capture the analysis value before each interesting program point, replacing the splitBasicBlock trick that introduced fake nodes only to read the lattice value at them. Other changes that ride along: - StackOffsetCache memoizes getStackOffset per function. - findAllWriters does a single sorted sweep instead of a quadratic scan over Ranges. - The pipeline gains a stack-accesses-segregated artifact entry. - Test fixtures (filecheck.ll, override.yml, segregate-stack-accesses configuration) are updated to match the new IR shape.