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
Original bug ID: 7042 Reporter:@xavierleroy Assigned to:@xavierleroy Status: closed (set by @xavierleroy on 2017-02-16T14:16:46Z) Resolution: fixed Priority: normal Severity: major Platform: x86-64 Version: 4.03.0+dev / +beta1 Target version: 4.03.0+dev / +beta1 Fixed in version: 4.03.0+dev / +beta1 Category: back end (clambda to assembly) Related to:#6442
Bug description
Owing to the use of Pervasives.compare, the new CSE pass of 4.03 considers as equal the instructions "Iconst_float 0.0" and "Iconst_float (-0.0)", replacing the latter by a move of the result of the former. This is not correct, as demonstrated by the attached repro case.
I think Flambda may suffer from a similar problem; in fact, we already have a code review comment about it. Maybe we should consider a different representation for floats even before Cmm.
Original bug ID: 7042
Reporter: @xavierleroy
Assigned to: @xavierleroy
Status: closed (set by @xavierleroy on 2017-02-16T14:16:46Z)
Resolution: fixed
Priority: normal
Severity: major
Platform: x86-64
Version: 4.03.0+dev / +beta1
Target version: 4.03.0+dev / +beta1
Fixed in version: 4.03.0+dev / +beta1
Category: back end (clambda to assembly)
Related to: #6442
Bug description
Owing to the use of Pervasives.compare, the new CSE pass of 4.03 considers as equal the instructions "Iconst_float 0.0" and "Iconst_float (-0.0)", replacing the latter by a move of the result of the former. This is not correct, as demonstrated by the attached repro case.
Possible fixes:
Steps to reproduce
Compile mzero.ml using ocamlc and using ocamlopt, then compare the outputs.
File attachments
The text was updated successfully, but these errors were encountered: