Add MDefinition::definitelyType
Categories
(Core :: JavaScript Engine: JIT, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
Details
Attachments
(6 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
As suggested in https://phabricator.services.mozilla.com/D72641, add MDefinition::definitelyType()
to change some MDefinition::mightBeType()
callers to use whitelists instead of blacklists to guide optimisations.
Assignee | ||
Comment 1•4 years ago
|
||
Part 3 adds another caller to this function.
Assignee | ||
Comment 2•4 years ago
|
||
TypeSet::unknownObject()
checks if TYPE_FLAG_UNKNOWN
or TYPE_FLAG_ANYOBJECT
is set, but since the previous call to TypeSet::unknown()
already filters
TYPE_FLAG_UNKNOWN
, we only need to care about TYPE_FLAG_ANYOBJECT
here. When
we additionally set TYPE_FLAG_ANYOBJECT
for the baseObjectCount() != 0
case,
we can conflate the whole operation into a single bit-and instruction.
This will also simplify part 3.
Depends on D73884
Assignee | ||
Comment 3•4 years ago
|
||
Add definitelyType()
as an alternative to mightBeType()
when we need to
find out if a MDefinition
's types are guaranteed to be a subset of certain
types.
Depends on D73885
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D73886
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D73887
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D73888
Pushed by rgurzau@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7b0041e310fb Part 1: Move MIRType to TypeFlags conversion into a helper function. r=jandem https://hg.mozilla.org/integration/autoland/rev/375db7943c69 Part 2: Handle MIRType::Object through TypeFlags in MIRTypeToTypeFlags. r=jandem https://hg.mozilla.org/integration/autoland/rev/9dd4ec80877b Part 3: Add MIRType::definitelyType. r=jandem https://hg.mozilla.org/integration/autoland/rev/309a51f48fa6 Part 4: Use positive instead of negative filter lists for non-effectful MIR nodes. r=jandem https://hg.mozilla.org/integration/autoland/rev/f205812a4516 Part 5: Use definitelyType in MCallOptimize. r=jandem https://hg.mozilla.org/integration/autoland/rev/da4ef62948b7 Part 6: Use definitelyType in IonBuilder. r=jandem
Comment 8•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7b0041e310fb
https://hg.mozilla.org/mozilla-central/rev/375db7943c69
https://hg.mozilla.org/mozilla-central/rev/9dd4ec80877b
https://hg.mozilla.org/mozilla-central/rev/309a51f48fa6
https://hg.mozilla.org/mozilla-central/rev/f205812a4516
https://hg.mozilla.org/mozilla-central/rev/da4ef62948b7
Description
•