Closed Bug 1686692 Opened 3 years ago Closed 3 years ago

Remove unused MIR nodes, MBasicBlock methods, and enums

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: anba, Assigned: anba)

References

Details

Attachments

(44 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
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

The following MIR nodes are no longer used:

  • MArgumentState
  • MCallDirectEval
  • MConstantElements
  • MFallibleStoreElement
  • MGetDynamicName
  • MGetPropertyPolymorphic
  • MGuardObject
  • MGuardReceiverPolymorphic
  • MGuardString
  • MLoadElementFromState
  • MObjectClassToString
  • MPolyInlineGuard
  • MRecompileCheck
  • MSetPropertyInstruction
  • MSetPropertyPolymorphic
  • MUnknownValue

The following MBasicBlock functions are no longer used:

  • MBasicBlock::NewWithResumePoint()
  • MBasicBlock::inheritResumePoint()
  • MBasicBlock::addFromElsewhere()
  • MBasicBlock::assertUsesAreNotWithin()
  • MBasicBlock::inheritPhis()
  • MBasicBlock::specializePhis()

These MCompare::CompareType enum values are no longer used:

  • Compare_Boolean
  • Compare_Int32MaybeCoerceBoth
  • Compare_Int32MaybeCoerceLHS
  • Compare_Int32MaybeCoerceRHS

MIRType::ObjectOrNull is also no longer set for any nodes.

I'm not sure if removing these will conflict with the work done in bug 1682767, though.

(In reply to André Bargull [:anba] from comment #1)

I'm not sure if removing these will conflict with the work done in bug 1682767, though.

Should be fine, I don't have more patches there at this point.

Severity: -- → N/A
Type: task → enhancement
Priority: -- → P3
Assignee: nobody → andrebargull
Status: NEW → ASSIGNED

Compare_{Boolean, StrictString, Int32MaybeCoerce{Both,LHS,RHS}} are all no longer used.

Depends on D101869

At this point, MNot::operandMightEmulateUndefined() always returns true, so
we can remove any code which assumes it may return false.
In CodeGenerator::visitNotV(), operand->mightBeType(MIRType::Object) always
returns true in Warp, so we can remove the else-branch in that function.

Depends on D101872

Similar to part 4, this method is no longer necessary.

Depends on D101873

Similar to part 4, this method is no longer necessary.

Depends on D101874

Add MCompare::NewWasm() in preparation for the next part.

Depends on D101875

Directly set the comparison in the constructor. This will allow to remove
MCompare::Compare_Unknown in the next part.

Depends on D101876

Remove MCompare::setCompareType() so it's easier to see that the comparison
type won't change after running the constructor.

Depends on D101879

Depends on D101881

Depends on D101882

Depends on D101884

Depends on D101889

Depends on D101890

Depends on D101896

Depends on D101903

Depends on D101904

Depends on D101905

LArrayPushT was effectively disabled in bug 1401624, when MArrayPush's policy
was changed from NoFloatPolicy to BoxPolicy.

Depends on D101906

Warp only uses LSameValueD, so we can remove LSameValue{V,VM} and also
directly use AllDoublePolicy for MSameValue.

Depends on D101909

Depends on D101910

Pushed by ncsoregi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cd8037d37dda
Part 1: Remove unused MBasicBlock methods. r=jandem
https://hg.mozilla.org/integration/autoland/rev/ab3cfbaa1dda
Part 2: Remove unused MCompare compare types. r=jandem
https://hg.mozilla.org/integration/autoland/rev/76025aba6ff1
Part 3: Remove M{Compare,Not}::markNoOperandEmulatesUndefined(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/3df8aa194dfc
Part 4: Remove MNot::operandMightEmulateUndefined(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/8111d3b5e18e
Part 5: Remove MCompare::operandMightEmulateUndefined(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/de2914fea13f
Part 6: Remove MTest::operandMightEmulateUndefined(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/4f09fd5fefec
Part 7: Add MCompare::NewWasm. r=jandem
https://hg.mozilla.org/integration/autoland/rev/22f94dd04465
Part 8: Set MCompare comparison type in the constructor. r=jandem
https://hg.mozilla.org/integration/autoland/rev/fc810ef0f92a
Part 9: Remove MCompare::Compare_Unknown. r=jandem
https://hg.mozilla.org/integration/autoland/rev/8073fa2bc3d9
Part 10: Remove MCompare::setCompareType. r=jandem
https://hg.mozilla.org/integration/autoland/rev/f50599c05263
Part 11: Remove LCompareBAndBranch. r=jandem
https://hg.mozilla.org/integration/autoland/rev/5c2c3bda1701
Part 12: Remove LCompareB. r=jandem
https://hg.mozilla.org/integration/autoland/rev/9c8dd124ceaf
Part 13: Remove LCompareStrictS. r=jandem
https://hg.mozilla.org/integration/autoland/rev/40694bbe289b
Part 14: Inline CodeGenerator::emitCompareS into its single caller. r=jandem
https://hg.mozilla.org/integration/autoland/rev/1871f86e2186
Part 15: Remove LCompareVM. r=jandem
https://hg.mozilla.org/integration/autoland/rev/761c5d2a99c3
Part 16: Inline jit::{Loosely,Strictly}Equal. r=jandem
https://hg.mozilla.org/integration/autoland/rev/3ea4f34c2390
Part 17: Remove MIRType::ObjectOrNull. r=jandem
https://hg.mozilla.org/integration/autoland/rev/4dc1ce1c7f09
Part 18: Remove MLoadElementFromState. r=jandem
https://hg.mozilla.org/integration/autoland/rev/229e91fb0240
Part 19: Remove MArgumentState. r=jandem
https://hg.mozilla.org/integration/autoland/rev/5a3b143e8e9f
Part 20: Remove MCallDirectEval. r=jandem
https://hg.mozilla.org/integration/autoland/rev/be92c1d1c763
Part 21: Remove MConstantElements. r=jandem
https://hg.mozilla.org/integration/autoland/rev/1fa963fdc5ac
Part 22: Remove MFallibleStoreElement. r=jandem
https://hg.mozilla.org/integration/autoland/rev/2c600412671c
Part 23: Inline CodeGenerator::emitStoreElementHole{T,V}(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/d44245ad70cb
Part 24: Remove MGetDynamicName. r=jandem
https://hg.mozilla.org/integration/autoland/rev/b219fb80fca5
Part 25: Remove MGetPropertyPolymorphic. r=jandem
https://hg.mozilla.org/integration/autoland/rev/3b27695bd41a
Part 26: Remove MSetPropertyPolymorphic. r=jandem
https://hg.mozilla.org/integration/autoland/rev/4453731e2dc6
Part 27: Remove MSetPropertyInstruction. r=jandem
https://hg.mozilla.org/integration/autoland/rev/93cefac14445
Part 28: Remove MPolyInlineGuard. r=jandem
https://hg.mozilla.org/integration/autoland/rev/e45fe162a3dd
Part 29: Remove MGuardReceiverPolymorphic. r=jandem
https://hg.mozilla.org/integration/autoland/rev/8136415df029
Part 30: Remove MGuardObject. r=jandem
https://hg.mozilla.org/integration/autoland/rev/3efb7f8c2faf
Part 31: Remove MGuardString. r=jandem
https://hg.mozilla.org/integration/autoland/rev/ec03ba18d672
Part 32: Remove MUnknownValue. r=jandem
https://hg.mozilla.org/integration/autoland/rev/3c4ad98116c4
Part 33: Remove LArrayPushT. r=jandem
https://hg.mozilla.org/integration/autoland/rev/04b1286c1b73
Part 34: Inline CodeGenerator::emitArrayPush() and remove the "V" suffix from "LArrayPushV". r=jandem
https://hg.mozilla.org/integration/autoland/rev/871437df87f2
Part 35: Use ToConstantOrRegister in CodeGenerator::visitStoreDynamicSlotT. r=jandem
https://hg.mozilla.org/integration/autoland/rev/4e9f62a82ab2
Part 36: Remove no longer used MSameValue lowering types. r=jandem
https://hg.mozilla.org/integration/autoland/rev/5c8cab18f91a
Part 37: Remove MToObject. r=jandem
https://hg.mozilla.org/integration/autoland/rev/d3527c6e5672
Part 38: Remove LambdaFunctionInfo::singletonType. r=jandem
https://hg.mozilla.org/integration/autoland/rev/dfffca92905d
Part 39: Remove no longer used LLoadDynamicSlotT. r=jandem
https://hg.mozilla.org/integration/autoland/rev/c7f255644230
Part 40: Remove no longer used LLoadElementT. r=jandem
https://hg.mozilla.org/integration/autoland/rev/bff69c55aa82
Part 41: Remove LUnboxObjectOrNull. r=jandem
https://hg.mozilla.org/integration/autoland/rev/122ddcc979c0
Part 42: Remove MDefinition::maybeEmulatesUndefined(). r=jandem
https://hg.mozilla.org/integration/autoland/rev/ec355aa2c750
Part 43: Remove non-GC pointer support from LPointer. r=jandem
https://hg.mozilla.org/integration/autoland/rev/bb87116d8537
Part 44: Remove LLambdaForSingleton. r=jandem

https://hg.mozilla.org/mozilla-central/rev/cd8037d37dda
https://hg.mozilla.org/mozilla-central/rev/ab3cfbaa1dda
https://hg.mozilla.org/mozilla-central/rev/76025aba6ff1
https://hg.mozilla.org/mozilla-central/rev/3df8aa194dfc
https://hg.mozilla.org/mozilla-central/rev/8111d3b5e18e
https://hg.mozilla.org/mozilla-central/rev/de2914fea13f
https://hg.mozilla.org/mozilla-central/rev/4f09fd5fefec
https://hg.mozilla.org/mozilla-central/rev/22f94dd04465
https://hg.mozilla.org/mozilla-central/rev/fc810ef0f92a
https://hg.mozilla.org/mozilla-central/rev/8073fa2bc3d9
https://hg.mozilla.org/mozilla-central/rev/f50599c05263
https://hg.mozilla.org/mozilla-central/rev/5c2c3bda1701
https://hg.mozilla.org/mozilla-central/rev/9c8dd124ceaf
https://hg.mozilla.org/mozilla-central/rev/40694bbe289b
https://hg.mozilla.org/mozilla-central/rev/1871f86e2186
https://hg.mozilla.org/mozilla-central/rev/761c5d2a99c3
https://hg.mozilla.org/mozilla-central/rev/3ea4f34c2390
https://hg.mozilla.org/mozilla-central/rev/4dc1ce1c7f09
https://hg.mozilla.org/mozilla-central/rev/229e91fb0240
https://hg.mozilla.org/mozilla-central/rev/5a3b143e8e9f
https://hg.mozilla.org/mozilla-central/rev/be92c1d1c763
https://hg.mozilla.org/mozilla-central/rev/1fa963fdc5ac
https://hg.mozilla.org/mozilla-central/rev/2c600412671c
https://hg.mozilla.org/mozilla-central/rev/d44245ad70cb
https://hg.mozilla.org/mozilla-central/rev/b219fb80fca5
https://hg.mozilla.org/mozilla-central/rev/3b27695bd41a
https://hg.mozilla.org/mozilla-central/rev/4453731e2dc6
https://hg.mozilla.org/mozilla-central/rev/93cefac14445
https://hg.mozilla.org/mozilla-central/rev/e45fe162a3dd
https://hg.mozilla.org/mozilla-central/rev/8136415df029
https://hg.mozilla.org/mozilla-central/rev/3efb7f8c2faf
https://hg.mozilla.org/mozilla-central/rev/ec03ba18d672
https://hg.mozilla.org/mozilla-central/rev/3c4ad98116c4
https://hg.mozilla.org/mozilla-central/rev/04b1286c1b73
https://hg.mozilla.org/mozilla-central/rev/871437df87f2
https://hg.mozilla.org/mozilla-central/rev/4e9f62a82ab2
https://hg.mozilla.org/mozilla-central/rev/5c8cab18f91a
https://hg.mozilla.org/mozilla-central/rev/d3527c6e5672
https://hg.mozilla.org/mozilla-central/rev/dfffca92905d
https://hg.mozilla.org/mozilla-central/rev/c7f255644230
https://hg.mozilla.org/mozilla-central/rev/bff69c55aa82
https://hg.mozilla.org/mozilla-central/rev/122ddcc979c0
https://hg.mozilla.org/mozilla-central/rev/ec355aa2c750
https://hg.mozilla.org/mozilla-central/rev/bb87116d8537

Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
Depends on: 1673553
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: