Skip to content

[pull] master from ruby:master#910

Merged
pull[bot] merged 5 commits intoturkdevops:masterfrom
ruby:master
Apr 4, 2026
Merged

[pull] master from ruby:master#910
pull[bot] merged 5 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 4, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

k0kubun added 5 commits April 3, 2026 15:35
When two GuardType instructions in the same basic block guard the same
value with the same (or narrower) type, the second guard is redundant.
For example, `(n - 1) + (n - 2)` generates two `GuardType n, Fixnum`
— one for each subtraction — but after the first guard succeeds, the
second is guaranteed to succeed as well.

The new logic in fold_constants tracks every GuardType emitted so far
in the current block. If a later GuardType's (val, guard_type) pair is
already covered (i.e. guard_type is a subtype of the earlier guard's
type), the later guard is replaced with the earlier result via
make_equal_to.
Address review feedback: use a method instead of directly comparing
.status == IseqStatus::Invalidated.
@pull pull bot locked and limited conversation to collaborators Apr 4, 2026
@pull pull bot added the ⤵️ pull label Apr 4, 2026
@pull pull bot merged commit 6ab9b22 into turkdevops:master Apr 4, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant