Skip to content
Commit 8fb45278 authored by Carlos Galindo's avatar Carlos Galindo
Browse files

Slicing algorithms unification and overhaul.

Main motivation: AdaptedStandardAlgorithm is not an equivalent context-insensitive version of StandardAlgorithm, because it groups nodes as if it were slicing the SDG.
Secondary motivation: apply the same traversal rules (if applicable) to all slicing algorithms, instead of having different versions that haven't been updated since they stopped being used in benchmarks.
- Introduced the OnePassStandardAlgorithm, field-insensitive version of OnePassConstrainedAlgorithm.
- Document all available slicing algorithms and their quirks (javadoc on interface).
- Unified traversal rules for the EDG on SlicingAlgorithm.

Changes to specific algorithms:
- StandardAlgorithm, AdaptedStandardAlgorithm: include last edge type in traversal.
- ConstrainedAlgorithm, OnePassConstrainedAlgorithm:
  - Simplify NodeWork processing and EdgeWork constructor.
  - Upstream types of edges that can't be traversed during SummaryGeneration.
- ConstrainedAlgorithm: copy changes of commit 523c3112.
- Pseudo-predicate algorithms: unify conditional traversal on SlicingAlgorithm and simplify both algorithms.

Other, minor changes:
- Add EDG#clearConstraints, moved from OnePassConstrainedAlgorithm#slice (was commented out)
- LAST#getResFromNode: add check for null NodeInfo.
- Documentation
parent 523c3112
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment