public:
RunVisitor(Typer* typer, MaybeHandle<Context> context)
: Visitor(typer, context),
- phis(NodeSet::key_compare(), NodeSet::allocator_type(typer->zone())) {}
+ redo(NodeSet::key_compare(), NodeSet::allocator_type(typer->zone())) {}
GenericGraphVisit::Control Post(Node* node) {
if (OperatorProperties::HasValueOutput(node->op())) {
Bounds bounds = TypeNode(node);
NodeProperties::SetBounds(node, bounds);
- // Remember phis for least fixpoint iteration.
- if (node->opcode() == IrOpcode::kPhi) phis.insert(node);
+ // Remember incompletely typed nodes for least fixpoint iteration.
+ int arity = OperatorProperties::GetValueInputCount(node->op());
+ for (int i = 0; i < arity; ++i) {
+ // TODO(rossberg): change once IsTyped is available.
+ // if (!NodeProperties::IsTyped(NodeProperties::GetValueInput(node, i))) {
+ if (OperandType(node, i).upper->Is(Type::None())) {
+ redo.insert(node);
+ break;
+ }
+ }
}
return GenericGraphVisit::CONTINUE;
}
- NodeSet phis;
+ NodeSet redo;
};
RunVisitor typing(this, context);
graph->VisitNodeInputsFromEnd(&typing);
// Find least fixpoint.
- for (NodeSetIter i = typing.phis.begin(); i != typing.phis.end(); ++i) {
+ for (NodeSetIter i = typing.redo.begin(); i != typing.redo.end(); ++i) {
Widen(graph, *i, context);
}
}
'test-run-inlining/InlineTwiceDependentDiamond': [SKIP],
'test-run-inlining/InlineTwiceDependentDiamondDifferent': [SKIP],
- # TODO(mstarzinger): Causes crash in generated code, needs investigation.
- 'test-api/FixedUint8Array': [PASS, NO_VARIANTS],
- 'test-api/FixedUint8ClampedArray': [PASS, NO_VARIANTS],
- 'test-api/FixedInt8Array': [PASS, NO_VARIANTS],
- 'test-api/FixedUint16Array': [PASS, NO_VARIANTS],
- 'test-api/FixedInt16Array': [PASS, NO_VARIANTS],
- 'test-api/FixedUint32Array': [PASS, NO_VARIANTS],
- 'test-api/FixedInt32Array': [PASS, NO_VARIANTS],
- 'test-api/FixedFloat32Array': [PASS, NO_VARIANTS],
- 'test-api/FixedFloat64Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalInt8Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalUint8Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalUint8ClampedArray': [PASS, NO_VARIANTS],
- 'test-api/ExternalInt16Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalUint32Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalUint16Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalInt32Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalFloat32Array': [PASS, NO_VARIANTS],
- 'test-api/ExternalArrays': [PASS, NO_VARIANTS],
- 'test-api/ExternalFloat64Array': [PASS, NO_VARIANTS],
- 'test-api/Uint8Array': [PASS, NO_VARIANTS],
- 'test-api/Int8Array': [PASS, NO_VARIANTS],
- 'test-api/Uint16Array': [PASS, NO_VARIANTS],
- 'test-api/Int16Array': [PASS, NO_VARIANTS],
- 'test-api/Uint32Array': [PASS, NO_VARIANTS],
- 'test-api/Int32Array': [PASS, NO_VARIANTS],
- 'test-api/Float64Array': [PASS, NO_VARIANTS],
- 'test-api/Float32Array': [PASS, NO_VARIANTS],
- 'test-api/Uint8ClampedArray': [PASS, NO_VARIANTS],
-
# Some tests are just too slow to run for now.
'test-api/Threading*': [PASS, NO_VARIANTS],
'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [PASS, NO_VARIANTS],
'debug-references': [PASS, NO_VARIANTS],
'regress/regress-263': [PASS, NO_VARIANTS],
- # TODO(mstarzinger): Causes crash in generated code, needs investigation.
- 'array-sort': [PASS, NO_VARIANTS],
- 'dehoisted-array-index': [PASS, NO_VARIANTS],
-
# TODO(mstarzinger/rossberg): Typer doesn't like contexts very much.
'harmony/block-conflicts': [PASS, NO_VARIANTS],
'harmony/block-for': [PASS, NO_VARIANTS],
'string-oom-concat': [PASS, NO_VARIANTS],
'unbox-double-arrays': [PASS, NO_VARIANTS],
'compiler/osr-warm': [PASS, NO_VARIANTS],
- 'compiler/regress-3136962': [PASS, NO_VARIANTS],
'harmony/proxies-json': [PASS, NO_VARIANTS],
'regress/regress-760-1': [PASS, NO_VARIANTS],
'regress/regress-760-2': [PASS, NO_VARIANTS],
'exception-with-handler-inside-eval-with-dynamic-scope': [PASS, NO_VARIANTS],
# TODO(turbofan): We run out of stack earlier on 64-bit for now.
'fast/js/deep-recursion-test': [PASS, NO_VARIANTS],
- # TODO(mstarzinger): Causes crash in generated code, needs investigation.
- 'dfg-arguments-osr-exit': [PASS, NO_VARIANTS],
- 'dfg-arguments-osr-exit-multiple-blocks': [PASS, NO_VARIANTS],
- 'dfg-arguments-osr-exit-multiple-blocks-before-exit': [PASS, NO_VARIANTS],
- 'dfg-arguments-unexpected-escape': [PASS, NO_VARIANTS],
# TODO(bmeurer,svenpanne): Investigate test failure.
'fast/js/toString-number': [SKIP],
}], # ALWAYS