Closed Bug 578917 Opened 14 years ago Closed 14 years ago

inline js_UnboxDouble

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 580534

People

(Reporter: luke, Unassigned)

References

Details

With fatvals, phi nodes, and uint64-to-double conversion, we can inline js_UnboxDouble on both 32 and 64 bit.
I was investigating fatval slowdowns on individual SS benchmarks math-cordic was one (2ms slowdown).  Shark seems to indicate that this is entirely due to js_UnboxDouble.  This bug should improve things.
Note that accesses to type-specific arrays, ie. arrays-of-doubles (bug 566767) don't have the js_UnboxDouble call.  So this bug and that bug are both eating into the same inefficiency, but not in a complementary way.
There are two ways to fix this. Not doing d2i would allow us to not emit a call for UnboxDouble (which we currently need to detect it and turn it into UnboxInt32 where needed). Nick owns a bug on that, but it seems hard.

Another approach would be to finish the call inlining patch and inline with that:

https://bugzilla.mozilla.org/show_bug.cgi?id=522593
(In reply to comment #3)
> There are two ways to fix this. Not doing d2i would allow us to not emit a call
> for UnboxDouble (which we currently need to detect it and turn it into
> UnboxInt32 where needed). Nick owns a bug on that, but it seems hard.

I'm not sure which approach you are referring to, but all I want to do is:
1. generate the little diamond graph to unbox the double, using a phi node
2. replace the places where we ask "is it a js_UnboxDouble" with a structural match on the diamond generated in (1)
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.