Bug 960145 - IonMonkey: Don't ignore OSR-like values when computing phi ranges. r=mrosenberg

This commit is contained in:
Dan Gohman 2014-02-11 17:37:05 -05:00
parent f0c7354cd5
commit 4fe6d4ab6e
2 changed files with 0 additions and 17 deletions

View File

@ -85,8 +85,6 @@ class MUse;
class MIRGraph;
class MResumePoint;
static inline bool isOSRLikeValue (MDefinition *def);
// Represents a use of a node.
class MUse : public TempObject, public InlineListNode<MUse>
{
@ -9747,17 +9745,6 @@ MInstruction *MDefinition::toInstruction()
return (MInstruction *)this;
}
static inline bool isOSRLikeValue (MDefinition *def) {
if (def->isOsrValue())
return true;
if (def->isUnbox())
if (def->getOperand(0)->isOsrValue())
return true;
return false;
}
typedef Vector<MDefinition *, 8, IonAllocPolicy> MDefinitionVector;
// Helper functions used to decide how to build MIR.

View File

@ -998,16 +998,12 @@ MPhi::computeRange(TempAllocator &alloc)
return;
Range *range = nullptr;
JS_ASSERT(!isOSRLikeValue(getOperand(0)));
for (size_t i = 0, e = numOperands(); i < e; i++) {
if (getOperand(i)->block()->unreachable()) {
IonSpew(IonSpew_Range, "Ignoring unreachable input %d", getOperand(i)->id());
continue;
}
if (isOSRLikeValue(getOperand(i)))
continue;
// Peek at the pre-bailout range so we can take a short-cut; if any of
// the operands has an unknown range, this phi has an unknown range.
if (!getOperand(i)->range())