Closed Bug 1637748 Opened 2 years ago Closed 2 years ago

Optimize StringCharCodeAt in CacheIR

Categories

(Core :: JavaScript Engine: JIT, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox78 --- fixed

People

(Reporter: evilpie, Assigned: evilpie)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

I needed some simple CacheIR stub for testing the transpilation of Call stubs. Sadly all the existing "special cased natives" are kind of complicated. This should also be useful for octane-mandreel perf when we get there.

I also added some cleanup.

Depends on D75194

Blocks: 1637755
Severity: -- → N/A
Priority: -- → P1
Attachment #9148157 - Attachment description: Bug 1637748 - [Draft] Optimize StringCharCodeAt in CacheIR. → Bug 1637748 - Optimize StringChar(Code)At in CacheIR. r?iain

Technically this is not needed yet, because we only use this function in cases when pc == JSOp::Call(IgnoreRv),
but I think this a nicer abstraction for the future.

Attachment #9149448 - Attachment description: Bug 1637748 - Introduce maybeArgCountGuard. r?iain → Bug 1637748 - Dont guard on the argc, which is always constant per PC. r?iain
Pushed by evilpies@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/7ae0a2e14c02
Use the  InlinableNative enum instead of JSNative pointers. r=iain
https://hg.mozilla.org/integration/autoland/rev/0a3b09709cc0
Add emitNativeCalleeGuard helper. r=iain
https://hg.mozilla.org/integration/autoland/rev/42c078bfda8c
Optimize StringChar(Code)At in CacheIR. r=iain
https://hg.mozilla.org/integration/autoland/rev/3c2afd69bfd5
Dont guard on the argc, which is always constant per PC. r=iain
You need to log in before you can comment on or make changes to this bug.