Closed Bug 465649 Opened 16 years ago Closed 15 years ago

TM: Make nanojit reverse pipeline customizable

Categories

(Core :: JavaScript Engine, enhancement)

x86
macOS
enhancement
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: gal, Assigned: gal)

Details

Attachments

(1 file, 1 obsolete file)

No description provided.
Attached patch patch (obsolete) — Splinter Review
Assignee: general → gal
Status: NEW → ASSIGNED
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.
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.
Severity: normal → enhancement
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.

Attachment

General

Created:
Updated:
Size: