From: bmeurer@chromium.org Date: Wed, 10 Sep 2014 06:39:25 +0000 (+0000) Subject: Revert "Switch inlining to use simplified instead of machine loads.", "Fix size_t... X-Git-Tag: upstream/4.7.83~7027 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f5b0911db3d74ff967a2c5154986525bd084e0e;p=platform%2Fupstream%2Fv8.git Revert "Switch inlining to use simplified instead of machine loads.", "Fix size_t to int conversion compile error." and "Add copy support in inliner.". This reverts commits r23813, r23805 and r23804 for Windows breakage. TBR=mstarzinger@chromium.org,sigurds@chromium.org Review URL: https://codereview.chromium.org/562543002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc index ac9cfa8..26beac6 100644 --- a/src/compiler/access-builder.cc +++ b/src/compiler/access-builder.cc @@ -31,13 +31,6 @@ FieldAccess AccessBuilder::ForJSObjectElements() { // static -FieldAccess AccessBuilder::ForJSFunctionContext() { - return {kTaggedBase, JSFunction::kContextOffset, Handle(), - Type::Internal(), kMachAnyTagged}; -} - - -// static FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { return {kTaggedBase, JSArrayBuffer::kBackingStoreOffset, Handle(), Type::UntaggedPtr(), kMachPtr}; diff --git a/src/compiler/access-builder.h b/src/compiler/access-builder.h index 7d0bda1..d545d2b 100644 --- a/src/compiler/access-builder.h +++ b/src/compiler/access-builder.h @@ -25,9 +25,6 @@ class AccessBuilder FINAL : public AllStatic { // Provides access to JSObject::elements() field. static FieldAccess ForJSObjectElements(); - // Provides access to JSFunction::context() field. - static FieldAccess ForJSFunctionContext(); - // Provides access to JSArrayBuffer::backing_store() field. static FieldAccess ForJSArrayBufferBackingStore(); diff --git a/src/compiler/change-lowering-unittest.cc b/src/compiler/change-lowering-unittest.cc index 9d56331..1978476 100644 --- a/src/compiler/change-lowering-unittest.cc +++ b/src/compiler/change-lowering-unittest.cc @@ -74,12 +74,10 @@ class ChangeLoweringTest : public GraphTest { Reduction Reduce(Node* node) { Typer typer(zone()); - MachineOperatorBuilder machine(zone(), WordRepresentation()); - JSOperatorBuilder javascript(zone()); - JSGraph jsgraph(graph(), common(), &javascript, &typer, &machine); + JSGraph jsgraph(graph(), common(), &typer); CompilationInfo info(isolate(), zone()); Linkage linkage(&info); - + MachineOperatorBuilder machine(zone(), WordRepresentation()); ChangeLowering reducer(&jsgraph, &linkage, &machine); return reducer.Reduce(node); } diff --git a/src/compiler/generic-graph.h b/src/compiler/generic-graph.h index a555456..e8de9eb 100644 --- a/src/compiler/generic-graph.h +++ b/src/compiler/generic-graph.h @@ -22,6 +22,7 @@ class GenericGraphBase : public ZoneObject { NodeId NextNodeID() { return next_node_id_++; } NodeId NodeCount() const { return next_node_id_; } + void SetNextNodeId(NodeId next) { next_node_id_ = next; } private: Zone* zone_; diff --git a/src/compiler/js-graph.h b/src/compiler/js-graph.h index 99a6a06..71d6434 100644 --- a/src/compiler/js-graph.h +++ b/src/compiler/js-graph.h @@ -9,7 +9,6 @@ #include "src/compiler/common-operator.h" #include "src/compiler/graph.h" #include "src/compiler/js-operator.h" -#include "src/compiler/machine-operator.h" #include "src/compiler/node-properties.h" namespace v8 { @@ -23,14 +22,11 @@ class Typer; // constants, and various helper methods. class JSGraph : public ZoneObject { public: - JSGraph(Graph* graph, CommonOperatorBuilder* common, - JSOperatorBuilder* javascript, Typer* typer, - MachineOperatorBuilder* machine) + JSGraph(Graph* graph, CommonOperatorBuilder* common, Typer* typer) : graph_(graph), common_(common), - javascript_(javascript), + javascript_(zone()), typer_(typer), - machine_(machine), cache_(zone()) {} // Canonicalized global constants. @@ -77,9 +73,8 @@ class JSGraph : public ZoneObject { return Constant(immediate); } - JSOperatorBuilder* javascript() { return javascript_; } + JSOperatorBuilder* javascript() { return &javascript_; } CommonOperatorBuilder* common() { return common_; } - MachineOperatorBuilder* machine() { return machine_; } Graph* graph() { return graph_; } Zone* zone() { return graph()->zone(); } Isolate* isolate() { return zone()->isolate(); } @@ -87,9 +82,8 @@ class JSGraph : public ZoneObject { private: Graph* graph_; CommonOperatorBuilder* common_; - JSOperatorBuilder* javascript_; + JSOperatorBuilder javascript_; Typer* typer_; - MachineOperatorBuilder* machine_; SetOncePointer c_entry_stub_constant_; SetOncePointer undefined_constant_; diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc index 147cfc9..7a18c71 100644 --- a/src/compiler/js-inlining.cc +++ b/src/compiler/js-inlining.cc @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "src/compiler/access-builder.h" #include "src/compiler/ast-graph-builder.h" #include "src/compiler/common-operator.h" #include "src/compiler/generic-node-inl.h" @@ -68,9 +67,14 @@ static void Parse(Handle function, CompilationInfoWithZone* info) { // A facade on a JSFunction's graph to facilitate inlining. It assumes the // that the function graph has only one return statement, and provides // {UnifyReturn} to convert a function graph to that end. +// InlineAtCall will create some new nodes using {graph}'s builders (and hence +// those nodes will live in {graph}'s zone. class Inlinee { public: - Inlinee(Node* start, Node* end) : start_(start), end_(end) {} + explicit Inlinee(JSGraph* graph) : jsgraph_(graph) {} + + Graph* graph() { return jsgraph_->graph(); } + JSGraph* jsgraph() { return jsgraph_; } // Returns the last regular control node, that is // the last control node before the end node. @@ -88,25 +92,24 @@ class Inlinee { } // Return the unique return statement of the graph. Node* unique_return() { - Node* unique_return = NodeProperties::GetControlInput(end_); + Node* unique_return = + NodeProperties::GetControlInput(jsgraph_->graph()->end()); DCHECK_EQ(IrOpcode::kReturn, unique_return->opcode()); return unique_return; } // Inline this graph at {call}, use {jsgraph} and its zone to create // any new nodes. void InlineAtCall(JSGraph* jsgraph, Node* call); - // Ensure that only a single return reaches the end node. - static void UnifyReturn(JSGraph* jsgraph); + void UnifyReturn(); private: - Node* start_; - Node* end_; + JSGraph* jsgraph_; }; -void Inlinee::UnifyReturn(JSGraph* jsgraph) { - Graph* graph = jsgraph->graph(); +void Inlinee::UnifyReturn() { + Graph* graph = jsgraph_->graph(); Node* final_merge = NodeProperties::GetControlInput(graph->end(), 0); if (final_merge->opcode() == IrOpcode::kReturn) { @@ -117,11 +120,11 @@ void Inlinee::UnifyReturn(JSGraph* jsgraph) { int predecessors = OperatorProperties::GetControlInputCount(final_merge->op()); - Operator* op_phi = jsgraph->common()->Phi(kMachAnyTagged, predecessors); - Operator* op_ephi = jsgraph->common()->EffectPhi(predecessors); + Operator* op_phi = jsgraph_->common()->Phi(kMachAnyTagged, predecessors); + Operator* op_ephi = jsgraph_->common()->EffectPhi(predecessors); - NodeVector values(jsgraph->zone()); - NodeVector effects(jsgraph->zone()); + NodeVector values(jsgraph_->zone()); + NodeVector effects(jsgraph_->zone()); // Iterate over all control flow predecessors, // which must be return statements. InputIter iter = final_merge->inputs().begin(); @@ -147,104 +150,37 @@ void Inlinee::UnifyReturn(JSGraph* jsgraph) { Node* ephi = graph->NewNode(op_ephi, static_cast(effects.size()), &effects.front()); Node* new_return = - graph->NewNode(jsgraph->common()->Return(), phi, ephi, final_merge); + graph->NewNode(jsgraph_->common()->Return(), phi, ephi, final_merge); graph->end()->ReplaceInput(0, new_return); } -class CopyVisitor : public NullNodeVisitor { - public: - CopyVisitor(Graph* source_graph, Graph* target_graph, Zone* temp_zone) - : copies_(source_graph->NodeCount(), NULL, temp_zone), - sentinels_(source_graph->NodeCount(), NULL, temp_zone), - source_graph_(source_graph), - target_graph_(target_graph), - temp_zone_(temp_zone), - sentinel_op_(IrOpcode::kDead, Operator::kNoProperties, 0, 0, - "sentinel") {} - - GenericGraphVisit::Control Post(Node* original) { - NodeVector inputs(temp_zone_); - for (InputIter it = original->inputs().begin(); - it != original->inputs().end(); ++it) { - inputs.push_back(GetCopy(*it)); - } - - // Reuse the operator in the copy. This assumes that op lives in a zone - // that lives longer than graph()'s zone. - Node* copy = target_graph_->NewNode( - original->op(), static_cast(inputs.size()), &inputs.front()); - copies_[original->id()] = copy; - return GenericGraphVisit::CONTINUE; - } - - Node* GetCopy(Node* original) { - Node* copy = copies_[original->id()]; - if (copy == NULL) { - copy = GetSentinel(original); - } - return copy; - } - - void CopyGraph() { - source_graph_->VisitNodeInputsFromEnd(this); - ReplaceSentinels(); - } - - const NodeVector& copies() { return copies_; } - - private: - void ReplaceSentinels() { - for (int id = 0; id < source_graph_->NodeCount(); ++id) { - Node* sentinel = sentinels_[id]; - if (sentinel == NULL) continue; - Node* copy = copies_[id]; - DCHECK_NE(NULL, copy); - sentinel->ReplaceUses(copy); - } - } - - Node* GetSentinel(Node* original) { - Node* sentinel = sentinels_[original->id()]; - if (sentinel == NULL) { - sentinel = target_graph_->NewNode(&sentinel_op_); - } - return sentinel; - } - - NodeVector copies_; - NodeVector sentinels_; - Graph* source_graph_; - Graph* target_graph_; - Zone* temp_zone_; - SimpleOperator sentinel_op_; -}; - - void Inlinee::InlineAtCall(JSGraph* jsgraph, Node* call) { + MachineOperatorBuilder machine(jsgraph->zone()); + // The scheduler is smart enough to place our code; we just ensure {control} // becomes the control input of the start of the inlinee. Node* control = NodeProperties::GetControlInput(call); // The inlinee uses the context from the JSFunction object. This will // also be the effect dependency for the inlinee as it produces an effect. - SimplifiedOperatorBuilder simplified(jsgraph->zone()); + // TODO(sigurds) Use simplified load once it is ready. Node* context = jsgraph->graph()->NewNode( - simplified.LoadField(AccessBuilder::ForJSFunctionContext()), - NodeProperties::GetValueInput(call, 0), + machine.Load(kMachAnyTagged), NodeProperties::GetValueInput(call, 0), + jsgraph->Int32Constant(JSFunction::kContextOffset - kHeapObjectTag), NodeProperties::GetEffectInput(call)); // {inlinee_inputs} counts JSFunction, Receiver, arguments, context, // but not effect, control. - int inlinee_inputs = start_->op()->OutputCount(); + int inlinee_inputs = graph()->start()->op()->OutputCount(); // Context is last argument. int inlinee_context_index = inlinee_inputs - 1; // {inliner_inputs} counts JSFunction, Receiver, arguments, but not // context, effect, control. int inliner_inputs = OperatorProperties::GetValueInputCount(call->op()); // Iterate over all uses of the start node. - UseIter iter = start_->uses().begin(); - while (iter != start_->uses().end()) { + UseIter iter = graph()->start()->uses().begin(); + while (iter != graph()->start()->uses().end()) { Node* use = *iter; switch (use->opcode()) { case IrOpcode::kParameter: { @@ -298,10 +234,10 @@ void Inlinee::InlineAtCall(JSGraph* jsgraph, Node* call) { } -void JSInliner::TryInlineCall(Node* call) { - DCHECK_EQ(IrOpcode::kJSCallFunction, call->opcode()); +void JSInliner::TryInlineCall(Node* node) { + DCHECK_EQ(IrOpcode::kJSCallFunction, node->opcode()); - HeapObjectMatcher match(call->InputAt(0)); + HeapObjectMatcher match(node->InputAt(0)); if (!match.HasValue()) { return; } @@ -339,20 +275,21 @@ void JSInliner::TryInlineCall(Node* call) { info_->shared_info()->DebugName()->ToCString().get()); } - Graph graph(info.zone()); - Typer typer(info.zone()); - JSGraph jsgraph(&graph, jsgraph_->common(), jsgraph_->javascript(), &typer, - jsgraph_->machine()); + Graph graph(info_->zone()); + graph.SetNextNodeId(jsgraph_->graph()->NextNodeID()); + + Typer typer(info_->zone()); + CommonOperatorBuilder common(info_->zone()); + JSGraph jsgraph(&graph, &common, &typer); AstGraphBuilder graph_builder(&info, &jsgraph); graph_builder.CreateGraph(); - Inlinee::UnifyReturn(&jsgraph); - CopyVisitor visitor(&graph, jsgraph_->graph(), info.zone()); - visitor.CopyGraph(); + Inlinee inlinee(&jsgraph); + inlinee.UnifyReturn(); + inlinee.InlineAtCall(jsgraph_, node); - Inlinee inlinee(visitor.GetCopy(graph.start()), visitor.GetCopy(graph.end())); - inlinee.InlineAtCall(jsgraph_, call); + jsgraph_->graph()->SetNextNodeId(inlinee.graph()->NextNodeID()); } } } diff --git a/src/compiler/machine-operator-reducer-unittest.cc b/src/compiler/machine-operator-reducer-unittest.cc index 755f4c4..a756fe3 100644 --- a/src/compiler/machine-operator-reducer-unittest.cc +++ b/src/compiler/machine-operator-reducer-unittest.cc @@ -20,8 +20,7 @@ class MachineOperatorReducerTest : public GraphTest { protected: Reduction Reduce(Node* node) { Typer typer(zone()); - JSOperatorBuilder javascript(zone()); - JSGraph jsgraph(graph(), common(), &javascript, &typer, &machine_); + JSGraph jsgraph(graph(), common(), &typer); MachineOperatorReducer reducer(&jsgraph); return reducer.Reduce(node); } diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc index ce9ce3a..6b5fdcf 100644 --- a/src/compiler/pipeline.cc +++ b/src/compiler/pipeline.cc @@ -170,9 +170,7 @@ Handle Pipeline::GenerateCode() { // typer could sweep over later. Typer typer(zone()); CommonOperatorBuilder common(zone()); - JSOperatorBuilder javascript(zone()); - MachineOperatorBuilder machine(zone()); - JSGraph jsgraph(&graph, &common, &javascript, &typer, &machine); + JSGraph jsgraph(&graph, &common, &typer); Node* context_node; { PhaseStats graph_builder_stats(info(), PhaseStats::CREATE_GRAPH, @@ -258,6 +256,7 @@ Handle Pipeline::GenerateCode() { SourcePositionTable::Scope pos(&source_positions, SourcePosition::Unknown()); Linkage linkage(info()); + MachineOperatorBuilder machine(zone()); ValueNumberingReducer vn_reducer(zone()); SimplifiedOperatorReducer simple_reducer(&jsgraph, &machine); ChangeLowering lowering(&jsgraph, &linkage, &machine); @@ -282,6 +281,7 @@ Handle Pipeline::GenerateCode() { "generic lowering"); SourcePositionTable::Scope pos(&source_positions, SourcePosition::Unknown()); + MachineOperatorBuilder machine(zone()); JSGenericLowering lowering(info(), &jsgraph, &machine); GraphReducer graph_reducer(&graph); graph_reducer.AddReducer(&lowering); diff --git a/src/compiler/simplified-operator-reducer-unittest.cc b/src/compiler/simplified-operator-reducer-unittest.cc index 6214f3b..1736cfc 100644 --- a/src/compiler/simplified-operator-reducer-unittest.cc +++ b/src/compiler/simplified-operator-reducer-unittest.cc @@ -23,8 +23,7 @@ class SimplifiedOperatorReducerTest : public GraphTest { Reduction Reduce(Node* node) { Typer typer(zone()); MachineOperatorBuilder machine(zone()); - JSOperatorBuilder javascript(zone()); - JSGraph jsgraph(graph(), common(), &javascript, &typer, &machine); + JSGraph jsgraph(graph(), common(), &typer); SimplifiedOperatorReducer reducer(&jsgraph, &machine); return reducer.Reduce(node); } diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status index 6ca32e4..51268e3 100644 --- a/test/cctest/cctest.status +++ b/test/cctest/cctest.status @@ -94,10 +94,6 @@ 'test-run-machops/RunLoadImmIndex': [SKIP], 'test-run-machops/RunSpillLotsOfThingsWithCall': [SKIP], - # TODO(sigurds): The schedule is borked with multiple inlinees. - 'test-run-inlining/InlineTwiceDependentDiamond': [SKIP], - 'test-run-inlining/InlineTwiceDependentDiamondDifferent': [SKIP], - # Some tests are just too slow to run for now. 'test-api/Threading*': [PASS, NO_VARIANTS], 'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [PASS, NO_VARIANTS], diff --git a/test/cctest/compiler/test-changes-lowering.cc b/test/cctest/compiler/test-changes-lowering.cc index d4076e9..071acf3 100644 --- a/test/cctest/compiler/test-changes-lowering.cc +++ b/test/cctest/compiler/test-changes-lowering.cc @@ -31,13 +31,10 @@ class ChangesLoweringTester : public GraphBuilderTester { explicit ChangesLoweringTester(MachineType p0 = kMachNone) : GraphBuilderTester(p0), typer(this->zone()), - javascript(this->zone()), - jsgraph(this->graph(), this->common(), &javascript, &typer, - this->machine()), + jsgraph(this->graph(), this->common(), &typer), function(Handle::null()) {} Typer typer; - JSOperatorBuilder javascript; JSGraph jsgraph; Handle function; diff --git a/test/cctest/compiler/test-js-constant-cache.cc b/test/cctest/compiler/test-js-constant-cache.cc index 8bfadbf..fc67df2 100644 --- a/test/cctest/compiler/test-js-constant-cache.cc +++ b/test/cctest/compiler/test-js-constant-cache.cc @@ -17,16 +17,10 @@ using namespace v8::internal::compiler; class JSCacheTesterHelper { protected: explicit JSCacheTesterHelper(Zone* zone) - : main_graph_(zone), - main_common_(zone), - main_javascript_(zone), - main_typer_(zone), - main_machine_(zone) {} + : main_graph_(zone), main_common_(zone), main_typer_(zone) {} Graph main_graph_; CommonOperatorBuilder main_common_; - JSOperatorBuilder main_javascript_; Typer main_typer_; - MachineOperatorBuilder main_machine_; }; @@ -36,8 +30,7 @@ class JSConstantCacheTester : public HandleAndZoneScope, public: JSConstantCacheTester() : JSCacheTesterHelper(main_zone()), - JSGraph(&main_graph_, &main_common_, &main_javascript_, &main_typer_, - &main_machine_) {} + JSGraph(&main_graph_, &main_common_, &main_typer_) {} Type* upper(Node* node) { return NodeProperties::GetBounds(node).upper; } diff --git a/test/cctest/compiler/test-js-context-specialization.cc b/test/cctest/compiler/test-js-context-specialization.cc index 1253dd8..e5e6ce7 100644 --- a/test/cctest/compiler/test-js-context-specialization.cc +++ b/test/cctest/compiler/test-js-context-specialization.cc @@ -22,10 +22,9 @@ class ContextSpecializationTester : public HandleAndZoneScope, : DirectGraphBuilder(new (main_zone()) Graph(main_zone())), common_(main_zone()), javascript_(main_zone()), - machine_(main_zone()), simplified_(main_zone()), typer_(main_zone()), - jsgraph_(graph(), common(), &javascript_, &typer_, &machine_), + jsgraph_(graph(), common(), &typer_), info_(main_isolate(), main_zone()) {} Factory* factory() { return main_isolate()->factory(); } @@ -38,7 +37,6 @@ class ContextSpecializationTester : public HandleAndZoneScope, private: CommonOperatorBuilder common_; JSOperatorBuilder javascript_; - MachineOperatorBuilder machine_; SimplifiedOperatorBuilder simplified_; Typer typer_; JSGraph jsgraph_; diff --git a/test/cctest/compiler/test-js-typed-lowering.cc b/test/cctest/compiler/test-js-typed-lowering.cc index 41879cf..c53cd75 100644 --- a/test/cctest/compiler/test-js-typed-lowering.cc +++ b/test/cctest/compiler/test-js-typed-lowering.cc @@ -50,7 +50,7 @@ class JSTypedLoweringTester : public HandleAndZoneScope { } Node* reduce(Node* node) { - JSGraph jsgraph(&graph, &common, &javascript, &typer, &machine); + JSGraph jsgraph(&graph, &common, &typer); JSTypedLowering reducer(&jsgraph); Reduction reduction = reducer.Reduce(node); if (reduction.Changed()) return reduction.replacement(); diff --git a/test/cctest/compiler/test-machine-operator-reducer.cc b/test/cctest/compiler/test-machine-operator-reducer.cc index d6928c7..bcd6835 100644 --- a/test/cctest/compiler/test-machine-operator-reducer.cc +++ b/test/cctest/compiler/test-machine-operator-reducer.cc @@ -55,9 +55,8 @@ class ReducerTester : public HandleAndZoneScope { machine(main_zone()), common(main_zone()), graph(main_zone()), - javascript(main_zone()), typer(main_zone()), - jsgraph(&graph, &common, &javascript, &typer, &machine), + jsgraph(&graph, &common, &typer), maxuint32(Constant(kMaxUInt32)) { Node* s = graph.NewNode(common.Start(num_parameters)); graph.SetStart(s); @@ -69,7 +68,6 @@ class ReducerTester : public HandleAndZoneScope { MachineOperatorBuilder machine; CommonOperatorBuilder common; Graph graph; - JSOperatorBuilder javascript; Typer typer; JSGraph jsgraph; Node* maxuint32; diff --git a/test/cctest/compiler/test-representation-change.cc b/test/cctest/compiler/test-representation-change.cc index 36da572..2493632 100644 --- a/test/cctest/compiler/test-representation-change.cc +++ b/test/cctest/compiler/test-representation-change.cc @@ -25,16 +25,13 @@ class RepresentationChangerTester : public HandleAndZoneScope, explicit RepresentationChangerTester(int num_parameters = 0) : GraphAndBuilders(main_zone()), typer_(main_zone()), - javascript_(main_zone()), - jsgraph_(main_graph_, &main_common_, &javascript_, &typer_, - &main_machine_), + jsgraph_(main_graph_, &main_common_, &typer_), changer_(&jsgraph_, &main_simplified_, &main_machine_, main_isolate()) { Node* s = graph()->NewNode(common()->Start(num_parameters)); graph()->SetStart(s); } Typer typer_; - JSOperatorBuilder javascript_; JSGraph jsgraph_; RepresentationChanger changer_; diff --git a/test/cctest/compiler/test-run-inlining.cc b/test/cctest/compiler/test-run-inlining.cc index 1e52b35..8759ac5 100644 --- a/test/cctest/compiler/test-run-inlining.cc +++ b/test/cctest/compiler/test-run-inlining.cc @@ -42,8 +42,7 @@ TEST(SimpleInlining) { "function bar(s, t) { return foo(s); };" "return bar;})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(1), T.Val(1), T.Val(2)); @@ -58,8 +57,7 @@ TEST(SimpleInliningContext) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(13), T.Val(1), T.Val(2)); @@ -75,8 +73,7 @@ TEST(CaptureContext) { "})();" "(function (s) { return f(s)})", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined()); @@ -93,8 +90,7 @@ TEST(DontInlineEval) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42), T.Val("x"), T.undefined()); @@ -109,8 +105,7 @@ TEST(InlineOmitArguments) { "return (function (s,t) { return bar(s); });" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined()); @@ -126,8 +121,7 @@ TEST(InlineSurplusArguments) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined()); @@ -142,8 +136,7 @@ TEST(InlineTwice) { "return (function (s,t) { return bar(s) + bar(t); });" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(2 * 42 + 12 + 4), T.Val(12), T.Val(4)); @@ -159,8 +152,7 @@ TEST(InlineTwiceDependent) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42 + 42 + 12), T.Val(12), T.Val(4)); @@ -177,8 +169,7 @@ TEST(InlineTwiceDependentDiamond) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(-11), T.Val(11), T.Val(4)); @@ -195,8 +186,7 @@ TEST(InlineTwiceDependentDiamondDifferent) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(-329), T.Val(11), T.Val(4)); @@ -213,8 +203,7 @@ TEST(InlineLoop) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(0.0), T.Val(11), T.Val(4)); @@ -231,8 +220,7 @@ TEST(InlineStrictIntoNonStrict) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckThrows(T.undefined(), T.undefined()); @@ -248,8 +236,7 @@ TEST(InlineNonStrictIntoStrict) { "return bar;" "})();", CompilationInfo::kInliningEnabled | - CompilationInfo::kContextSpecializing | - CompilationInfo::kTypingEnabled); + CompilationInfo::kContextSpecializing); InstallAssertStackDepthHelper(CcTest::isolate()); T.CheckCall(T.Val(42), T.undefined(), T.undefined()); diff --git a/test/cctest/compiler/test-simplified-lowering.cc b/test/cctest/compiler/test-simplified-lowering.cc index fa50f89..ab0e76f 100644 --- a/test/cctest/compiler/test-simplified-lowering.cc +++ b/test/cctest/compiler/test-simplified-lowering.cc @@ -36,13 +36,10 @@ class SimplifiedLoweringTester : public GraphBuilderTester { MachineType p4 = kMachNone) : GraphBuilderTester(p0, p1, p2, p3, p4), typer(this->zone()), - javascript(this->zone()), - jsgraph(this->graph(), this->common(), &javascript, &typer, - this->machine()), + jsgraph(this->graph(), this->common(), &typer), lowering(&jsgraph) {} Typer typer; - JSOperatorBuilder javascript; JSGraph jsgraph; SimplifiedLowering lowering; @@ -629,7 +626,6 @@ TEST(RunAccessTests_Smi) { class TestingGraph : public HandleAndZoneScope, public GraphAndBuilders { public: Typer typer; - JSOperatorBuilder javascript; JSGraph jsgraph; Node* p0; Node* p1; @@ -640,8 +636,7 @@ class TestingGraph : public HandleAndZoneScope, public GraphAndBuilders { explicit TestingGraph(Type* p0_type, Type* p1_type = Type::None()) : GraphAndBuilders(main_zone()), typer(main_zone()), - javascript(main_zone()), - jsgraph(graph(), common(), &javascript, &typer, machine()) { + jsgraph(graph(), common(), &typer) { start = graph()->NewNode(common()->Start(2)); graph()->SetStart(start); ret =