| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/compiler.h" | 5 #include "src/compiler.h" | 
| 6 #include "src/compiler/all-nodes.h" | 6 #include "src/compiler/all-nodes.h" | 
| 7 #include "src/compiler/common-operator.h" | 7 #include "src/compiler/common-operator.h" | 
| 8 #include "src/compiler/control-reducer.h" | 8 #include "src/compiler/control-reducer.h" | 
| 9 #include "src/compiler/frame.h" | 9 #include "src/compiler/frame.h" | 
| 10 #include "src/compiler/graph.h" | 10 #include "src/compiler/graph.h" | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 37     if (TRACE_COND) PrintF(__VA_ARGS__); \ | 37     if (TRACE_COND) PrintF(__VA_ARGS__); \ | 
| 38   } while (false) | 38   } while (false) | 
| 39 | 39 | 
| 40 | 40 | 
| 41 // Peel outer loops and rewire the graph so that control reduction can | 41 // Peel outer loops and rewire the graph so that control reduction can | 
| 42 // produce a properly formed graph. | 42 // produce a properly formed graph. | 
| 43 static void PeelOuterLoopsForOsr(Graph* graph, CommonOperatorBuilder* common, | 43 static void PeelOuterLoopsForOsr(Graph* graph, CommonOperatorBuilder* common, | 
| 44                                  Zone* tmp_zone, Node* dead, | 44                                  Zone* tmp_zone, Node* dead, | 
| 45                                  LoopTree* loop_tree, LoopTree::Loop* osr_loop, | 45                                  LoopTree* loop_tree, LoopTree::Loop* osr_loop, | 
| 46                                  Node* osr_normal_entry, Node* osr_loop_entry) { | 46                                  Node* osr_normal_entry, Node* osr_loop_entry) { | 
| 47   const int original_count = graph->NodeCount(); | 47   const size_t original_count = graph->NodeCount(); | 
| 48   AllNodes all(tmp_zone, graph); | 48   AllNodes all(tmp_zone, graph); | 
| 49   NodeVector tmp_inputs(tmp_zone); | 49   NodeVector tmp_inputs(tmp_zone); | 
| 50   Node* sentinel = graph->NewNode(dead->op()); | 50   Node* sentinel = graph->NewNode(dead->op()); | 
| 51 | 51 | 
| 52   // Make a copy of the graph for each outer loop. | 52   // Make a copy of the graph for each outer loop. | 
| 53   ZoneVector<NodeVector*> copies(tmp_zone); | 53   ZoneVector<NodeVector*> copies(tmp_zone); | 
| 54   for (LoopTree::Loop* loop = osr_loop->parent(); loop; loop = loop->parent()) { | 54   for (LoopTree::Loop* loop = osr_loop->parent(); loop; loop = loop->parent()) { | 
| 55     void* stuff = tmp_zone->New(sizeof(NodeVector)); | 55     void* stuff = tmp_zone->New(sizeof(NodeVector)); | 
| 56     NodeVector* mapping = | 56     NodeVector* mapping = | 
| 57         new (stuff) NodeVector(original_count, sentinel, tmp_zone); | 57         new (stuff) NodeVector(original_count, sentinel, tmp_zone); | 
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 348   // the first spill slots. | 348   // the first spill slots. | 
| 349   frame->ReserveSpillSlots(UnoptimizedFrameSlots()); | 349   frame->ReserveSpillSlots(UnoptimizedFrameSlots()); | 
| 350   // The frame needs to be adjusted by the number of unoptimized frame slots. | 350   // The frame needs to be adjusted by the number of unoptimized frame slots. | 
| 351   frame->SetOsrStackSlotCount(static_cast<int>(UnoptimizedFrameSlots())); | 351   frame->SetOsrStackSlotCount(static_cast<int>(UnoptimizedFrameSlots())); | 
| 352 } | 352 } | 
| 353 | 353 | 
| 354 | 354 | 
| 355 }  // namespace compiler | 355 }  // namespace compiler | 
| 356 }  // namespace internal | 356 }  // namespace internal | 
| 357 }  // namespace v8 | 357 }  // namespace v8 | 
| OLD | NEW | 
|---|