Closed Bug 1685738 Opened 3 years ago Closed 3 years ago

Remove no longer used non-boxed output code in CacheIRCompiler

Categories

(Core :: JavaScript Engine: JIT, task)

task

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: anba, Assigned: anba)

Details

Attachments

(7 files)

There are a couple of if (!output.hasValue()) { ... } blocks in CacheIRCompiler which are no longer taken, because the output is nowadays always boxed.

Get{Prop,Elem}{Super} are now always using boxed outputs, so we can remove
the non-boxed output code for LoadDenseElementHoleResult and
LoadTypedArrayElementResult.

Get{Prop,Elem}{Super} and Call instructions are always using boxed results,
so instead of calling EmitStoreResult we can directly call masm.tagValue().

Depends on D101185

Similar to part 2, we can directly call masm.tagValue() instead of (sometimes!)
going through EmitStoreResult.

Depends on D101186

Undefined/String/Symbol/Int32/BigInt results are always boxed, so we don't need
to go through EmitStoreResult.

Drive-by change:

  • Call EmitStoreResult for LoadObjectResult.

Depends on D101187

Instead of relying on uint32_t(negative_int32) being larger the ArrayBuffer
length, explicitly check for negative indices.

Depends on D101189

Code coverage showed we have no coverage for these instructions when running with ICs.

Depends on D101190

Pushed by rmaries@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8c16133926f0
Part 1: Remove no longer used non-boxed output code for LoadDenseElementHoleResult and LoadTypedArrayElementResult. r=jandem
https://hg.mozilla.org/integration/autoland/rev/1a07d40ea891
Part 2: Directly store boxed results in various GetProp/GetElem/Call CacheIR instructions. r=jandem
https://hg.mozilla.org/integration/autoland/rev/05d7da0993b8
Part 3: Directly store result for unary/binary arithmetic as boxed value. r=jandem
https://hg.mozilla.org/integration/autoland/rev/dfe94c90b6aa
Part 4: Remove unreachable code from CacheIRCompiler::emitLoadXXXResult. r=jandem
https://hg.mozilla.org/integration/autoland/rev/2e262a8ce00f
Part 5: Remove method declarations without definitions. r=jandem
https://hg.mozilla.org/integration/autoland/rev/b83ade0f6c64
Part 6: Make check for negative indices explicit. r=jandem
https://hg.mozilla.org/integration/autoland/rev/cf1f775c0cdd
Part 7: Ensure IonCacheIRCompiler has test coverage for GetPropSuper/OptimizeSpread/ToPropertyKey. r=jandem
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: