Closed Bug 1637748 Opened 2 years ago Closed 2 years ago

Optimize StringCharCodeAt in CacheIR


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




Tracking Status
firefox78 --- fixed


(Reporter: evilpie, Assigned: evilpie)


(Blocks 1 open bug)



(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
Use the  InlinableNative enum instead of JSNative pointers. r=iain
Add emitNativeCalleeGuard helper. r=iain
Optimize StringChar(Code)At in CacheIR. r=iain
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.