| Index: src/compiler/js-inlining.cc
|
| diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc
|
| index 4e8adb25a076dfafaf18c2f4a7d12ba2c0455ffe..75bf4f2f53fc6518fb8448b2a8e84c3b181575a8 100644
|
| --- a/src/compiler/js-inlining.cc
|
| +++ b/src/compiler/js-inlining.cc
|
| @@ -49,35 +49,6 @@ void JSInliner::Inline() {
|
| }
|
|
|
|
|
| -static void MoveWithDependencies(Graph* graph, Node* node, Node* old_block,
|
| - Node* new_block) {
|
| - if (OperatorProperties::HasControlInput(node->op())) {
|
| - // Check if we have left the old_block.
|
| - if (NodeProperties::GetControlInput(node) != old_block) return;
|
| - // If not, move this node to the new_block.
|
| - NodeProperties::ReplaceControlInput(node, new_block);
|
| - }
|
| - // Independent of whether a node has a control input or not,
|
| - // it might have a dependency that is pinned to old_block.
|
| - for (InputIter iter = node->inputs().begin(); iter != node->inputs().end();
|
| - ++iter) {
|
| - if (NodeProperties::IsControlEdge(iter.edge())) continue;
|
| - MoveWithDependencies(graph, *iter, old_block, new_block);
|
| - }
|
| -}
|
| -
|
| -
|
| -static void MoveAllControlNodes(Node* from, Node* to) {
|
| - for (UseIter iter = from->uses().begin(); iter != from->uses().end();) {
|
| - if (NodeProperties::IsControlEdge(iter.edge())) {
|
| - iter.UpdateToAndIncrement(to);
|
| - } else {
|
| - ++iter;
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| // TODO(sigurds) Find a home for this function and reuse it everywhere (esp. in
|
| // test cases, where similar code is currently duplicated).
|
| static void Parse(Handle<JSFunction> function, CompilationInfoWithZone* info) {
|
| @@ -187,13 +158,9 @@ void Inlinee::UnifyReturn() {
|
| 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);
|
| - // Move all the nodes to the end block.
|
| - MoveAllControlNodes(control, end_block());
|
| - // Now move the ones the call depends on back up.
|
| - // We have to do this back-and-forth to treat the case where the call is
|
| - // pinned to the start block.
|
| - MoveWithDependencies(graph(), call, end_block(), control);
|
|
|
| // The inlinee uses the context from the JSFunction object. This will
|
| // also be the effect dependency for the inlinee as it produces an effect.
|
|
|