Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: src/compiler/control-reducer.cc

Issue 934293002: [turbofan] Simply context specialization and fix for OSR. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/compiler/js-context-specialization.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/common-operator.h" 5 #include "src/compiler/common-operator.h"
6 #include "src/compiler/control-reducer.h" 6 #include "src/compiler/control-reducer.h"
7 #include "src/compiler/graph.h" 7 #include "src/compiler/graph.h"
8 #include "src/compiler/js-graph.h" 8 #include "src/compiler/js-graph.h"
9 #include "src/compiler/node-marker.h" 9 #include "src/compiler/node-marker.h"
10 #include "src/compiler/node-matchers.h" 10 #include "src/compiler/node-matchers.h"
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 if (!marked.IsReachableFromEnd(use)) { 284 if (!marked.IsReachableFromEnd(use)) {
285 TRACE(("DeadLink: #%d:%s(%d) -> #%d:%s\n", use->id(), 285 TRACE(("DeadLink: #%d:%s(%d) -> #%d:%s\n", use->id(),
286 use->op()->mnemonic(), edge.index(), node->id(), 286 use->op()->mnemonic(), edge.index(), node->id(),
287 node->op()->mnemonic())); 287 node->op()->mnemonic()));
288 edge.UpdateTo(NULL); 288 edge.UpdateTo(NULL);
289 } 289 }
290 } 290 }
291 } 291 }
292 #if DEBUG 292 #if DEBUG
293 // Verify that no inputs to live nodes are NULL. 293 // Verify that no inputs to live nodes are NULL.
294 for (size_t j = 0; j < nodes.size(); j++) { 294 for (Node* node : nodes) {
295 Node* node = nodes[j]; 295 for (int index = 0; index < node->InputCount(); index++) {
296 for (Node* const input : node->inputs()) { 296 Node* input = node->InputAt(index);
297 CHECK(input); 297 if (input == nullptr) {
298 std::ostringstream str;
299 str << "GraphError: node #" << node->id() << ":" << *node->op()
300 << "(input @" << index << ") == null";
301 FATAL(str.str().c_str());
302 }
303 if (input->opcode() == IrOpcode::kDead) {
304 std::ostringstream str;
305 str << "GraphError: node #" << node->id() << ":" << *node->op()
306 << "(input @" << index << ") == dead";
307 FATAL(str.str().c_str());
308 }
298 } 309 }
299 for (Node* const use : node->uses()) { 310 for (Node* use : node->uses()) {
300 CHECK(marked.IsReachableFromEnd(use)); 311 CHECK(marked.IsReachableFromEnd(use));
301 } 312 }
302 } 313 }
303 #endif 314 #endif
304 } 315 }
305 316
306 // Reduce the node on the top of the stack. 317 // Reduce the node on the top of the stack.
307 // If an input {i} is not yet visited or needs to be revisited, push {i} onto 318 // If an input {i} is not yet visited or needs to be revisited, push {i} onto
308 // the stack and return. Otherwise, all inputs are visited, so apply 319 // the stack and return. Otherwise, all inputs are visited, so apply
309 // reductions for {node} and pop it off the stack. 320 // reductions for {node} and pop it off the stack.
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 return impl.ReduceIfTrue(node); 650 return impl.ReduceIfTrue(node);
640 case IrOpcode::kIfFalse: 651 case IrOpcode::kIfFalse:
641 return impl.ReduceIfFalse(node); 652 return impl.ReduceIfFalse(node);
642 default: 653 default:
643 return node; 654 return node;
644 } 655 }
645 } 656 }
646 } 657 }
647 } 658 }
648 } // namespace v8::internal::compiler 659 } // namespace v8::internal::compiler
OLDNEW
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/compiler/js-context-specialization.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698