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
cse_div:1: function f2/1+15:
Internal consistency check failed - please report this bug.
Instruction: {bif,fdiv,{f,0},[{fr,0},{fr,1}],{fr,0}}
Error: {uninitialized_reg,{fr,0}}:
The bug still reproduces if I replace both instances of 1 / V by 0 / V, but not if I only replace one, so I suspect that the problem is related to Common Subexpression Elimination of the division.
The call to is_tuple(V) can be replaced by is_list(V) and the bug still reproduces, but the crash disappears if it is removed altogether.
The text was updated successfully, but these errors were encountered:
CSE is a reasonable hypothesis, but that is not the problem. The problem is in the pass that rewrites general arithmetic instructions to specialised floating point instructions.
The linked pull request resolves the problem. It will be included in OTP 25.1 and also in the next patch for OTP 24.
On the following code:
erlc crashes with the following error message:
The bug still reproduces if I replace both instances of
1 / V
by0 / V
, but not if I only replace one, so I suspect that the problem is related to Common Subexpression Elimination of the division.The call to
is_tuple(V)
can be replaced byis_list(V)
and the bug still reproduces, but the crash disappears if it is removed altogether.The text was updated successfully, but these errors were encountered: