Closed Bug 1654516 Opened 4 years ago Closed 4 years ago

Optimize some more intrinsics in CacheIR and Warp

Categories

(Core :: JavaScript Engine: JIT, task, P3)

task

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox81 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

(Blocks 1 open bug)

Details

Attachments

(4 files, 1 obsolete file)

No description provided.

This is a pretty big performance improvement for bound functions in Baseline.

The transpiler part was non-trivial becuase the transpiler has to know whether
we're inlining and constructing. Instead of adding yet another argument to
TranspileCacheIRToMIR, this passes the WarpBuilder so we can use its inlineCallInfo.

I also added GuardIsNotProxy/MGuardIsNotProxy because it seemed like a useful
primitive to have.

Depends on D84517

Also changes the signatures of the 'next' methods so we can call them with callWithABI.

Depends on D84670

The IC code just does a callVM for now. This required adding AutoCallVM::callNoResult
to avoid confusing storeCallResult.

Depends on D84671

Also changes the signatures of the 'next' methods so we can call them with callWithABI.

Depends on D84670

Attachment #9166792 - Attachment is obsolete: true
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1152d7b452a9 part 1 - Optimize _IsConstructing intrinsic in CacheIR and Warp. r=iain https://hg.mozilla.org/integration/autoland/rev/fb2ba023ba98 part 2 - Optimize the IsCrossRealmArrayConstructor intrinsic in CacheIR and Warp. r=anba https://hg.mozilla.org/integration/autoland/rev/502c18eb1a04 part 3 - Optimize the GetNext{Map,Set}EntryForIterator intrinsics in CacheIR and Warp. r=anba https://hg.mozilla.org/integration/autoland/rev/664d5871886b part 4 - Optimize the FinishBoundFunctionInit intrinsic in CacheIR and Warp. r=anba
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: