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
Please register or sign in to comment