зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1011745 - Correctly distinguish loop header phis. r=h4writer a=abillings
This commit is contained in:
Родитель
d3ed70b23e
Коммит
76316ea76c
|
@ -1141,7 +1141,7 @@ MBasicBlock::inheritPhis(MBasicBlock *header)
|
|||
for (size_t slot = 0; slot < stackDepth; slot++) {
|
||||
MDefinition *exitDef = getSlot(slot);
|
||||
MDefinition *loopDef = headerRp->getOperand(slot);
|
||||
if (!loopDef->isPhi()) {
|
||||
if (loopDef->block() != header) {
|
||||
MOZ_ASSERT(loopDef->block()->id() < header->id());
|
||||
MOZ_ASSERT(loopDef == exitDef);
|
||||
continue;
|
||||
|
@ -1177,7 +1177,7 @@ MBasicBlock::inheritPhisFromBackedge(MBasicBlock *backedge, bool *hadTypeChange)
|
|||
|
||||
// Get the value of the loop header.
|
||||
MDefinition *loopDef = entryResumePoint()->getOperand(slot);
|
||||
if (!loopDef->isPhi()) {
|
||||
if (loopDef->block() != this) {
|
||||
// If we are finishing a pending loop header, then we need to ensure
|
||||
// that all operands are phis. This is usualy the case, except for
|
||||
// object/arrays build with generators, in which case we share the
|
||||
|
|
Загрузка…
Ссылка в новой задаче