Closed
Bug 465649
Opened 16 years ago
Closed 15 years ago
TM: Make nanojit reverse pipeline customizable
Categories
(Core :: JavaScript Engine, enhancement)
Tracking
()
RESOLVED
INVALID
People
(Reporter: gal, Assigned: gal)
Details
Attachments
(1 file, 1 obsolete file)
No description provided.
Assignee | ||
Comment 1•16 years ago
|
||
Assignee: general → gal
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•16 years ago
|
||
Attachment #348892 -
Attachment is obsolete: true
Comment 3•16 years ago
|
||
We wanted to do this experiment to see if it would improve compilation time for regexps, because they don't need all the filters. The results:
- DeadCodeFilter is needed, without it we get a 12ms regression, presumably because of LIR immediate instructions that are not eliminated.
- We couldn't detect any compiler speedup on regexp-dna or crypto-aes.
- Shark seems to indicate that for regexps, DeadCodeFilter is somewhat costly (perhaps about 1/8 of total compilation time) but the other backward filters are cheap.
So we concluded that for now this won't help.
Comment 4•16 years ago
|
||
The Assembler cases for each instruction actually assume the instruction isn't dead, i.e. the instruction will already have a register assignment and/or spill location assignment when it is reached. So DCF is really required.
A reason it would account for a large % of time is it can be busy skipping instructions, potentially lots of instructions. you mentioned immediates. One thing to look at is whether the LIR generation pipeline can produce less instructions that become dead. CseFilter will reuse immediates effectively, but it's expensive. a cheap immediate-only filter, with a fast value-lookup-table, might do the trick.
Updated•16 years ago
|
Severity: normal → enhancement
![]() |
||
Comment 5•15 years ago
|
||
This bug is older than the hills and barely relevant. Closing.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•