| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/graph-visualizer.h" | 5 #include "src/compiler/graph-visualizer.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| 11 #include "src/compiler/all-nodes.h" | 11 #include "src/compiler/all-nodes.h" |
| 12 #include "src/compiler/graph.h" | 12 #include "src/compiler/graph.h" |
| 13 #include "src/compiler/node.h" | 13 #include "src/compiler/node.h" |
| 14 #include "src/compiler/node-properties.h" | 14 #include "src/compiler/node-properties.h" |
| 15 #include "src/compiler/node-properties-inl.h" | |
| 16 #include "src/compiler/opcodes.h" | 15 #include "src/compiler/opcodes.h" |
| 17 #include "src/compiler/operator.h" | 16 #include "src/compiler/operator.h" |
| 17 #include "src/compiler/operator-properties.h" |
| 18 #include "src/compiler/register-allocator.h" | 18 #include "src/compiler/register-allocator.h" |
| 19 #include "src/compiler/schedule.h" | 19 #include "src/compiler/schedule.h" |
| 20 #include "src/compiler/scheduler.h" | 20 #include "src/compiler/scheduler.h" |
| 21 #include "src/ostreams.h" | 21 #include "src/ostreams.h" |
| 22 | 22 |
| 23 namespace v8 { | 23 namespace v8 { |
| 24 namespace internal { | 24 namespace internal { |
| 25 namespace compiler { | 25 namespace compiler { |
| 26 | 26 |
| 27 static int SafeId(Node* node) { return node == NULL ? -1 : node->id(); } | 27 static int SafeId(Node* node) { return node == NULL ? -1 : node->id(); } |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 os_ << "|" << Escaped(upper) << "|" << Escaped(lower); | 267 os_ << "|" << Escaped(upper) << "|" << Escaped(lower); |
| 268 } | 268 } |
| 269 os_ << "}\"\n"; | 269 os_ << "}\"\n"; |
| 270 | 270 |
| 271 os_ << " ]\n"; | 271 os_ << " ]\n"; |
| 272 if (control_cluster != NULL) os_ << " }\n"; | 272 if (control_cluster != NULL) os_ << " }\n"; |
| 273 } | 273 } |
| 274 | 274 |
| 275 | 275 |
| 276 static bool IsLikelyBackEdge(Node* from, int index, Node* to) { | 276 static bool IsLikelyBackEdge(Node* from, int index, Node* to) { |
| 277 if (IrOpcode::IsPhiOpcode(from->opcode())) { | 277 if (NodeProperties::IsPhi(from)) { |
| 278 Node* control = NodeProperties::GetControlInput(from, 0); | 278 Node* control = NodeProperties::GetControlInput(from, 0); |
| 279 return control != NULL && control->opcode() != IrOpcode::kMerge && | 279 return control != NULL && control->opcode() != IrOpcode::kMerge && |
| 280 control != to && index != 0; | 280 control != to && index != 0; |
| 281 } else if (from->opcode() == IrOpcode::kLoop) { | 281 } else if (from->opcode() == IrOpcode::kLoop) { |
| 282 return index != 0; | 282 return index != 0; |
| 283 } else { | 283 } else { |
| 284 return false; | 284 return false; |
| 285 } | 285 } |
| 286 } | 286 } |
| 287 | 287 |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 os << "#" << SafeId(i) << ":" << SafeMnemonic(i); | 770 os << "#" << SafeId(i) << ":" << SafeMnemonic(i); |
| 771 } | 771 } |
| 772 os << ")" << std::endl; | 772 os << ")" << std::endl; |
| 773 } | 773 } |
| 774 } | 774 } |
| 775 return os; | 775 return os; |
| 776 } | 776 } |
| 777 } | 777 } |
| 778 } | 778 } |
| 779 } // namespace v8::internal::compiler | 779 } // namespace v8::internal::compiler |
| OLD | NEW |