RESOLVED FIXED 128155
ASSERT in speculateMachineInt on 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=128155
Summary ASSERT in speculateMachineInt on 32-bit platforms
Mark Hahnenberg
Reported 2014-02-03 19:47:25 PST
Patch on the way.
Attachments
Patch (1.33 KB, patch)
2014-02-03 19:49 PST, Mark Hahnenberg
no flags
Patch (1.31 KB, patch)
2014-02-04 10:15 PST, Mark Hahnenberg
no flags
Mark Hahnenberg
Comment 1 2014-02-03 19:49:16 PST
Geoffrey Garen
Comment 2 2014-02-03 19:50:49 PST
Comment on attachment 223064 [details] Patch r=me
Filip Pizlo
Comment 3 2014-02-04 08:48:12 PST
Comment on attachment 223064 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=223064&action=review > Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:139 > if (type == SpecInt52AsDouble) > - type = SpecInt52; > + type = enableInt52() ? SpecInt52 : SpecDouble; I'm pretty sure this is wrong and will result in worse optimizations on 32-bit. In particular, you're claiming that if something was representable as an in52 (i.e. it's non-fractional and not-NaN and not infinity), then it's SpecDouble, which means "this value can be an integer, or a real, or infinity, or NaN, etc". So, this is not the right fix. You should have instead just made this say: if (type == SpecInt52AsDouble && enableInt52()) type = SpecInt52;
Mark Hahnenberg
Comment 4 2014-02-04 08:49:27 PST
> You should have instead just made this say: > > if (type == SpecInt52AsDouble && enableInt52()) > type = SpecInt52; But what happens when !enableInt52()? Is it valid for the speculated type to be SpecInt52AsDouble on 32-bit platforms?
Filip Pizlo
Comment 5 2014-02-04 10:12:47 PST
(In reply to comment #4) > > You should have instead just made this say: > > > > if (type == SpecInt52AsDouble && enableInt52()) > > type = SpecInt52; > > But what happens when !enableInt52()? Is it valid for the speculated type to be SpecInt52AsDouble on 32-bit platforms? Yes.
Mark Hahnenberg
Comment 6 2014-02-04 10:15:28 PST
Mark Hahnenberg
Comment 7 2014-02-04 11:05:05 PST
Note You need to log in before you can comment on or make changes to this bug.