| 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 | 
|---|