Closed Bug 1687255 Opened 4 years ago Closed 4 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)

(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
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

Depends on D102177

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: