Closed Bug 1685738 Opened 5 years ago Closed 5 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: