You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This appears to be the result of wrong flags processing. The scheduled code does:
v88 = CMPLconst <flags> [8] v48
v86 = SBBLcarrymask <int8> v88
... do things that clobber flags...
v87 = SBBLcarrymask <uint32> v88
v88 is not spilled and restored properly. There are 3 issues:
Regalloc doesn't know that the intervening instructions clobber flags.
We can't spill/restore flags.
The two SBBLs aren't CSEd because their types are different.
1 is about to be fixed with the new regalloc.
2 is to be done, but no timeline yet.
3 Josh was thinking about. Maybe remove types from (most?) values, they aren't used in many places.
With just 1 we'll at least get a "can't be regalloced" error instead of silently generating wrong code.
go1.4: -29
master: -29
dev.ssa: -30
This is a bug in dev.ssa at tip. I'll try to minimize this later if I have time.
The text was updated successfully, but these errors were encountered: