Skip to content

release: v0.7.0#104

Merged
avrabe merged 1 commit into
mainfrom
release/v0.7.0
May 13, 2026
Merged

release: v0.7.0#104
avrabe merged 1 commit into
mainfrom
release/v0.7.0

Conversation

@avrabe

@avrabe avrabe commented May 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Bump workspace version 0.6.0 → 0.7.0.

Infrastructure-and-cleanup release. Closes the trivial pipeline-order gap in v0.6.0's vacuum, lands function-summary interprocedural analysis (IPA) as the foundation for cross-call optimization, and adds verification-aware canonicalization as the IR-normalization substrate that downstream passes (and the Z3 verifier) compose better against.

Merged PRs

PR Title
#101 fix(pipeline): run vacuum after dead-stores/dead-locals to fold residue (-1.97% on gale)
#102 feat(opt): function-summary IPA + pure-zero-arg call/drop folding
#103 feat(opt): canonicalize pass — if/else→select + local.tee normalization

Measured impact on gale_ffi

Build Code section Δ vs baseline
baseline 811 B
v0.5.0 (regression) 862 B +6.3%
v0.6.0 804 B -0.86%
v0.7.0 795 B -1.97%

A further +1.1 percentage points from the pipeline-order fix (30 LOC). PR-F and PR-G are infrastructure — measurable wins from them will compound in v0.8.0 (CSE cross-call dedup, broader if/select, arg-aware call-drop fold).

Why infrastructure-heavy

PR-F builds function summaries — a function-purity / no-trap analysis that every cross-call optimization needs. Without it, every Call is an opaque side-effecting wall. With it: CSE can dedupe pure calls, DCE can drop pure calls with unused results, vacuum can fold pure call+drop pairs. The v0.7.0 consumer is conservative (zero-arg only), but the analysis is reusable.

PR-G builds canonical IR formsif/else → select (path-INSENSITIVE) and local.tee normalization. The Z3 verifier and every downstream pass now sees a canonical shape, which is a force-multiplier for verification confidence and rewrite quality.

PR-E was the direct byte win.

Research artifacts

Four v0.7.0-planning research documents under docs/research/v0.7.0/:

CHANGELOG

Detailed v0.7.0 entry already in CHANGELOG.md (this PR).

🤖 Generated with Claude Code

Bump workspace version 0.6.0 → 0.7.0.

Infrastructure-and-cleanup release. Closes the trivial pipeline-order
gap in v0.6.0's vacuum, lands function-summary interprocedural
analysis (IPA) as the foundation for cross-call optimization, and
adds verification-aware canonicalization as the IR-normalization
substrate that downstream passes (and the Z3 verifier) compose
better against.

Merged PRs:
  #101  fix(pipeline): run vacuum after dead-stores/dead-locals (-1.97% on gale)
  #102  feat(opt): function-summary IPA + pure-zero-arg call/drop folding
  #103  feat(opt): canonicalize pass — if/else→select + local.tee normalization

Measured impact on gale_ffi (1.9 KB kernel FFI):
  baseline:           code section 811 bytes
  v0.5.0 (regression): code section 862 bytes (+6.3%)
  v0.6.0:              code section 804 bytes (-0.86%)
  v0.7.0 (this):       code section 795 bytes (-1.97%)

Test count: 317 → 288+ in loom-core lib alone (cross-crate total
higher; new tests dominate from the three PRs).

The v0.7.0 release is infrastructure-heavy: PR-F and PR-G ship the
analysis substrate (function summaries + canonical IR forms) that
PR-H+ (v0.8.0) needs to compound on. PR-E was the direct byte win.
@avrabe avrabe merged commit 7b624fc into main May 13, 2026
10 of 18 checks passed
@avrabe avrabe deleted the release/v0.7.0 branch May 13, 2026 16:37
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