Closed Bug 1686692 Opened 4 years ago Closed 4 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: 4 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: