Skip to content

CPP: Disable dynamic reordering for AliasedSSA::isCoveredOffset - #22480

Merged
kaspersv merged 1 commit into
github:mainfrom
kaspersv:kaspersv/rtjo-disable-reordering
Sep 1, 2026
Merged

CPP: Disable dynamic reordering for AliasedSSA::isCoveredOffset#22480
kaspersv merged 1 commit into
github:mainfrom
kaspersv:kaspersv/rtjo-disable-reordering

Conversation

@kaspersv

@kaspersv kaspersv commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

We are working on a new dynamic join orderer for CodeQL that join orders predicates at evaluation-time using run-time cardinality information instead of relying on a statically chosen join order decided at compilation-time. At the moment the AliasedSSA::isCoveredOffset predicate is join ordered badly by the dynamic join orderer, leading to a catastrophic join regression for wireshark. This PR disables dynamic join ordering for this particular predicate, while we work on improving the dynamic join orderer.

Dynamic join ordering is still disabled by default during compilation and evaluation and the no_dynamic_join_order pragma has no effect on compilation when dynamic join ordering is not explicitly enabled during compilation.

Copilot AI balanced review requested due to automatic review settings September 1, 2026 11:03
@kaspersv
kaspersv requested a review from a team as a code owner September 1, 2026 11:03
@kaspersv kaspersv added the no-change-note-required This PR does not need a change note label Sep 1, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The targeted pragma correctly implements the documented performance workaround without affecting default evaluation behavior.

Review tier: Balanced
Findings: None

What changed in this PR

Disables dynamic join ordering for AliasedSSA::isCoveredOffset to prevent severe Wireshark evaluation regressions.

Changes:

  • Adds the no_dynamic_join_order pragma to the affected predicate.
File Description
cpp/​ql/​lib/​semmle/​code/​cpp/​ir/​implementation/​aliased_ssa/​internal/​AliasedSSA.qll Opts isCoveredOffset out of dynamic join ordering.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@jketema jketema left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@github-actions github-actions Bot added the C++ label Sep 1, 2026
@kaspersv
kaspersv merged commit b36dbd4 into github:main Sep 1, 2026
17 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C++ no-change-note-required This PR does not need a change note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants