Closed Bug 1687255 Opened 3 years ago Closed 3 years ago

Remove more unused MIR node methods and remove some callers to MDefinition::mightBeType

Categories

(Core :: JavaScript Engine: JIT, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: anba, Assigned: anba)

References

Details

Attachments

(22 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
No description provided.

MIsNullOrUndefined always boxes its input, so the input has MIRType::Value,
which means MDefinition::mightBeType() will now always return true. This
allows us to remove the mightBeType() calls for both LIsNullOrUndefined and
LIsNullOrUndefinedAndBranch.

Similar to part 1, LValueToInt32 is only used when the input has
MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102157

Similar to part 1, LValueToBigInt is only used when the input has
MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102158

Similar to part 1, LValueToString is only used when the input has
MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102160

Similar to part 1, LValueToInt64 is only used when the input has
MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102161

Similar to part 1, LIsNullOrLikeUndefined{AndBranch}V is only used when the
input has MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102162

Similar to part 1, LClampVToUint8 is only used when the input has
MIRType::Value, so we can remove the mightBeType() calls.

Depends on D102163

Inline maybeBranchTestType() into convertValueToInt() and remove the no
longer useful mightBeType() calls.

Depends on D102164

The previous part removed all uses for the MDefinition* parameter, so we can
further simplify this method by removed the parameter altogether.

Depends on D102165

The mightBeType added in bug 1395927 is no longer necessary for Warp.

Depends on D102166

Neither MUnbox::TypeBarrier nor MUnbox::makeInfallible() are used anymore.

Depends on D102167

Replaces handwritten New(...) methods with the TRIVIAL_NEW_WRAPPERS macro.

Depends on D102169

Removes protected access specifiers from MIR nodes which don't have any
sub-classes.

Depends on D102170

MSetElementInstruction has a single sub-class, so we might as well merge it
into MCallSetElement.

Depends on D102171

The comment in the now removed guardGroupForTypeBarrier() method was speaking
about typeset relationships, which are no longer relevant with TI being removed.

Depends on D102172

StoreDependency isn't used anywhere anymore.

Depends on D102173

Removes a couple of no longer used functions from "MIR.h".

Depends on D102174

The next parts remove unused functions from "MIR.cpp". Separated into single
commits in case we want to revert the removal for possible optimisations in
the future.

Depends on D102175

Use NAMED_OPERANDS for more MIR nodes to avoid some boilerplate code.

Depends on D102179

Pushed by ncsoregi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c706ea880a57
Part 1: Remove mightBeType for LIsNullOrUndefined and LIsNullOrUndefinedAndBranch. r=jandem
https://hg.mozilla.org/integration/autoland/rev/f3a1afefd527
Part 2: Remove mightBeType for LValueToInt32. r=jandem
https://hg.mozilla.org/integration/autoland/rev/134989414750
Part 3: Remove mightBeType for LValueToBigInt. r=jandem
https://hg.mozilla.org/integration/autoland/rev/5b8e54f87895
Part 4: Remove mightBeType for LValueToString. r=jandem
https://hg.mozilla.org/integration/autoland/rev/9384b8e964e1
Part 5: Remove mightBeType for LValueToInt64. r=jandem
https://hg.mozilla.org/integration/autoland/rev/f7d55fda559f
Part 6: Remove mightBeType for LIsNullOrLikeUndefined{AndBranch}V. r=jandem
https://hg.mozilla.org/integration/autoland/rev/b4c28e4f73a5
Part 7: Remove mightBeType for LClampVToUint8. r=jandem
https://hg.mozilla.org/integration/autoland/rev/9c3bb2906e38
Part 8: Remove mightBeType for MacroAssembler::convertValueToInt. r=jandem
https://hg.mozilla.org/integration/autoland/rev/e3d43fa5b35e
Part 9: Remove MDefinition parameter from MacroAssembler::convertValueToInt. r=jandem
https://hg.mozilla.org/integration/autoland/rev/0a7365b89eec
Part 10: Remove mightBeType for MHasClass. r=jandem
https://hg.mozilla.org/integration/autoland/rev/b1926fbe365a
Part 11: Remove MUnbox::TypeBarrier. r=jandem
https://hg.mozilla.org/integration/autoland/rev/a4968ff4001b
Part 12: Use TRIVIAL_NEW_WRAPPERS for more MIR nodes. r=jandem
https://hg.mozilla.org/integration/autoland/rev/c2fba0edd350
Part 13: Remove unnecessary 'protected' specifiers in MIR nodes. r=jandem
https://hg.mozilla.org/integration/autoland/rev/f38d3832ac1b
Part 14: Inline MSetElementInstruction into MCallSetElement. r=jandem
https://hg.mozilla.org/integration/autoland/rev/745ffc51422b
Part 15: Remove a stale comment in guardGroupForLayout. r=jandem
https://hg.mozilla.org/integration/autoland/rev/c07e6b8a9c6b
Part 16: Remove StoreDependency. r=jandem
https://hg.mozilla.org/integration/autoland/rev/ffdcd88f2506
Part 17: Remove unused header functions from MIR.h. r=jandem
https://hg.mozilla.org/integration/autoland/rev/1d059e390246
Part 18: Remove M{Test,Compare}::filtersUndefinedOrNull(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/3c2c1a4ae8a0
Part 19: Remove MDefinition::justReplaceAllUsesWithExcept. r=jandem
https://hg.mozilla.org/integration/autoland/rev/7c18f4da2974
Part 20: Remove MPhi::specializeType(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/b4efde4477f1
Part 21: Remove MBinaryInstruction::{New,constantDoubleResult}. r=jandem
https://hg.mozilla.org/integration/autoland/rev/32464f884e03
Part 22: Use NAMED_OPERANDS for more MIR nodes. r=jandem
Depends on: 1673553
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: