Skip to content

ci: include all literal match variants in benchmark chart#25

Merged
sentomk merged 6 commits intomainfrom
feat/on-compile-time-accel
Apr 30, 2026
Merged

ci: include all literal match variants in benchmark chart#25
sentomk merged 6 commits intomainfrom
feat/on-compile-time-accel

Conversation

@sentomk
Copy link
Copy Markdown
Owner

@sentomk sentomk commented Apr 30, 2026

Summary

Update CI benchmark filter to include new literal match benchmarks (16/32/64/128/RDense) in the performance chart.

Changes

  • ci.yml: changed --benchmark_filter and --include regex from _LiteralMatch/ to _LiteralMatch so it matches _LiteralMatch, _LiteralMatch16, _LiteralMatch32, _LiteralMatch64, _LiteralMatch128*, and _LiteralMatchRDense

Checklist

  • Tests added or updated when behavior changed
  • Documentation updated when public API or behavior changed
  • Commit messages follow CONTRIBUTING.md
  • PR targets main and passes required CI

sentomk and others added 5 commits April 30, 2026 20:19
Problem
- Literal patterns with density below 1/4 fell back to O(n) linear scan.
- An intermediate tier with relaxed density (1/8) can provide O(1) array
  dispatch for patterns like 10 cases spanning 0-100.

Implementation
- Added k_runtime_literal_dense_dispatch_max_cases=256 / _max_span=512 /
  _max_density=8 / _min_cases=4 constants.
- Added is_runtime_literal_dense_dispatch_enabled trait.
- Added use_runtime_dense_table field to static_literal_dispatch_metadata.
- Added can_use_runtime_literal_dense_dispatch to case_sequence_ir and
  lowering_analysis.
- New literal_runtime_dense_dispatch_plan struct and dispatch_plan_for_kind
  specialization.
- Updated dispatch_plan_selector priority: static_dense -> runtime_dense
  -> literal_linear.
- Extended eval_cases_with_dispatch_plan to route runtime_dense plans to
  the same eval_cases_impl_static_literal_dispatch evaluator.

Tests
- Added runtime bench suite: 15 sparse literal values (density ~0.15)
  comparing PatterniaPipe / IfElse / Switch.
- Added compile-time TU ct_bench_lit_rdense.cpp exercising the tier at
  compile time via constexpr + static_assert.

Notes
- No DSL or public API surface changes.
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@sentomk sentomk merged commit 4ef2829 into main Apr 30, 2026
20 checks passed
@sentomk sentomk deleted the feat/on-compile-time-accel branch April 30, 2026 19:32
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