Skip to content

[Target] Keep all implied features in canonical representation - #9253

Open
alexreinking wants to merge 2 commits into
alexreinking/target-tablesfrom
alexreinking/algebraic-targets
Open

[Target] Keep all implied features in canonical representation#9253
alexreinking wants to merge 2 commits into
alexreinking/target-tablesfrom
alexreinking/algebraic-targets

Conversation

@alexreinking

@alexreinking alexreinking commented Jul 28, 2026

Copy link
Copy Markdown
Member

Following up on my comment in #9241.

This adjusts Target to always have a single, stable, representation by filling in implied target features.

This leans into the mathematical lattice structure targets have.

Breaking changes

The target.to_string() function now shows a minimal target; clients wanting to see everything should use .to_complete_target().

Checklist

  • Tests added or updated (not required for docs, CI config, or typo fixes)
  • Documentation updated (if public API changed)
  • Python bindings updated (if public API changed)
  • Benchmarks are included here if the change is intended to affect performance.
  • Commits include AI attribution where applicable (see Code of Conduct)

Stack created with GitHub Stacks CLIGive Feedback 💬

@alexreinking
alexreinking force-pushed the alexreinking/algebraic-targets branch from b3a83a9 to f77cff8 Compare July 28, 2026 21:10
@alexreinking
alexreinking force-pushed the alexreinking/algebraic-targets branch 2 times, most recently from 4f95024 to ff18cb1 Compare July 28, 2026 23:26
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 65.31792% with 60 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.11%. Comparing base (89a3bd2) to head (6f40c62).

Files with missing lines Patch % Lines
src/Target.cpp 65.24% 39 Missing and 18 partials ⚠️
src/CodeGen_X86.cpp 0.00% 1 Missing and 1 partial ⚠️
src/StmtToHTML.cpp 50.00% 1 Missing ⚠️
Additional details and impacted files
@@                      Coverage Diff                       @@
##           alexreinking/target-tables    #9253      +/-   ##
==============================================================
- Coverage                       70.17%   70.11%   -0.07%     
==============================================================
  Files                             255      255              
  Lines                           79035    78973      -62     
  Branches                        18911    18875      -36     
==============================================================
- Hits                            55464    55372      -92     
- Misses                          17896    17915      +19     
- Partials                         5675     5686      +11     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

alexreinking added a commit to halide/build_bot that referenced this pull request Jul 29, 2026
…open PRs (#361)

Previously the scheduler only built PRs whose base branch was literally
"main", so a PR whose base is another PR's branch (a stacked PR, e.g.
halide/Halide#9253 based on #9251) was silently never scheduled.

Move the gating into SafeGitHubEventHandler.handle_pull_request, where the
full PR payload is available:
- base == "main": build, as before.
- base is a release/N.x branch: skip, as before.
- PR is part of a recognized GitHub Stack (the `stack` payload field): build.
  refs/pull/<N>/merge for a stacked PR is chained through every lower PR's
  own merge ref, so building it already transitively tests against
  stack.base.ref (main) -- confirmed by inspecting the actual merge commit
  parents on halide/Halide#9249-#9253.
- base is otherwise the head of another open PR in the same repo (an
  informal/pre-Stacks-feature chain): build.
- anything else (an untracked, possibly short-lived branch): skip, to avoid
  wasting CI on builds that can be invalidated without warning.

Fixes #148

Co-authored-by: Claude Sonnet 5 <[email protected]>
@alexreinking
alexreinking marked this pull request as ready for review July 29, 2026 13:58
@alexreinking
alexreinking requested review from halidebuildbots and removed request for halidebuildbots July 29, 2026 15:22
- de-duplicated orphaned features handling
- fixed a bug with trace-feature simplification
- added enum-ends to os/processor
@alexreinking
alexreinking force-pushed the alexreinking/algebraic-targets branch from ff18cb1 to 6f40c62 Compare July 29, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant