Closed
Bug 557404
Opened 15 years ago
Closed 15 years ago
unatomize doubles
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 549143
People
(Reporter: luke, Unassigned)
Details
Currently, literal double values are atomized. This means a JSAtom* is either a (cast) JSString* or a double*. It is questionable how much memory we are saving from atomizing doubles and it seems like we could make our code simpler and faster by dropping doubles and having a JSAtom* just be an opaque type signifying an atomized, untagged JSString*.
I'll take a crack at it.
![]() |
Reporter | |
Comment 1•15 years ago
|
||
This is also good for the fat jsvals of bug 549143 and allows heap doubles to be totally wiped out, I think.
Blocks: fatvals
Comment 2•15 years ago
|
||
(In reply to comment #0)
> Currently, literal double values are atomized. This means a JSAtom* is either
> a (cast) JSString* or a double*
... tagged as a jsval string or double (believe it!).
/be
![]() |
Reporter | |
Comment 3•15 years ago
|
||
So, it seems that in the restricted domain of JSOP_LOOKUPSWITCH, atoms can be any non-primitive value. However, only JSOP_LOOKUPSWITCH observes this, so perhaps we can change the way the immediate operands are encoded in the bytecode.
Comment 4•15 years ago
|
||
(In reply to comment #3)
> So, it seems that in the restricted domain of JSOP_LOOKUPSWITCH, atoms can be
> any non-primitive value.
s/non-//
/be
![]() |
Reporter | |
Comment 5•15 years ago
|
||
Yes, thanks for both corrections.
So reading and thinking a bit more, it seems like bug 549143 can go ahead without removing heap doubles. As long as they aren't being allocated in great quantity, the performance overhead will go away; the maintenance overhead can go away afterwards.
Assignee: lw → general
No longer blocks: fatvals
![]() |
Reporter | |
Comment 6•15 years ago
|
||
fatvals ended up removing heap doubles altogether.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•