Skip to content

asap-aware-mapping: rebuild applicability.rs findings as a view over the search's candidate-plan space #257

Description

@zzylol

Part of #33.

What

Rebuild applicability.rs (PR #247) as a reporting view over the Cascades/Volcano search's resulting candidate-plan space, instead of a parallel system that re-walks the tree itself.

Today, SketchApplicabilityRule/SharedSubexpressionRule each do their own traversal and re-derive a yes/no fact that the search (once the other #33 sub-issues land) will already have computed as part of building the full candidate space. Once that space exists, "which optimizations are applicable" and "which summary is applicable" collapse into the same question: for a given TargetSubDAG, what does its candidate list (across every registered ReplacementStrategy) actually contain?

Design

  • ApplicabilityFinding stays the public shape (optimization kind, location, reason) — only its data source changes, from "re-walk the tree" to "read off the search's per-site candidate list."
  • OptimizationKind gains one variant per landed ReplacementStrategy (SemanticRewrite, RollupReuse, SharedMultiSubpopulation), same #[non_exhaustive] discipline as today.
  • Existing tests in applicability.rs (positive/negative fixtures for sketch and CSE reuse) should keep passing unchanged against the new data source — they're pinning behavior, not implementation.

Depends on

The ReplacementStrategy trait and the search-engine sub-issues landing first; this is the last piece, once there's an actual candidate-plan space to report on instead of re-deriving.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestoptimizerWorkload optimization and plan selectionreplacement-strategyASAP replacement candidates and physical strategiessearchCandidate-plan search space and algorithms

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions