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" |
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 InstructionOperand* op = range->CreateAssignedOperand(zone()); | 716 InstructionOperand* op = range->CreateAssignedOperand(zone()); |
717 int assigned_reg = op->index(); | 717 int assigned_reg = op->index(); |
718 if (op->IsDoubleRegister()) { | 718 if (op->IsDoubleRegister()) { |
719 os_ << " \"" << DoubleRegister::AllocationIndexToString(assigned_reg) | 719 os_ << " \"" << DoubleRegister::AllocationIndexToString(assigned_reg) |
720 << "\""; | 720 << "\""; |
721 } else { | 721 } else { |
722 DCHECK(op->IsRegister()); | 722 DCHECK(op->IsRegister()); |
723 os_ << " \"" << Register::AllocationIndexToString(assigned_reg) << "\""; | 723 os_ << " \"" << Register::AllocationIndexToString(assigned_reg) << "\""; |
724 } | 724 } |
725 } else if (range->IsSpilled()) { | 725 } else if (range->IsSpilled()) { |
726 InstructionOperand* op = range->TopLevel()->GetSpillOperand(); | 726 int index = -1; |
727 if (op->IsDoubleStackSlot()) { | 727 if (range->TopLevel()->GetSpillRange()->id() != -1) { |
728 os_ << " \"double_stack:" << op->index() << "\""; | 728 index = range->TopLevel()->GetSpillRange()->id(); |
729 } else if (op->IsStackSlot()) { | |
730 os_ << " \"stack:" << op->index() << "\""; | |
731 } else { | 729 } else { |
732 DCHECK(op->IsConstant()); | 730 index = range->TopLevel()->GetSpillOperand()->index(); |
733 os_ << " \"const(nostack):" << op->index() << "\""; | 731 } |
| 732 if (range->TopLevel()->Kind() == DOUBLE_REGISTERS) { |
| 733 os_ << " \"double_stack:" << index << "\""; |
| 734 } else if (range->TopLevel()->Kind() == GENERAL_REGISTERS) { |
| 735 os_ << " \"stack:" << index << "\""; |
| 736 } else { |
| 737 os_ << " \"const(nostack):" << index << "\""; |
734 } | 738 } |
735 } | 739 } |
736 int parent_index = -1; | 740 int parent_index = -1; |
737 if (range->IsChild()) { | 741 if (range->IsChild()) { |
738 parent_index = range->parent()->id(); | 742 parent_index = range->parent()->id(); |
739 } else { | 743 } else { |
740 parent_index = range->id(); | 744 parent_index = range->id(); |
741 } | 745 } |
742 InstructionOperand* op = range->FirstHint(); | 746 InstructionOperand* op = range->FirstHint(); |
743 int hint_index = -1; | 747 int hint_index = -1; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
781 | 785 |
782 | 786 |
783 std::ostream& operator<<(std::ostream& os, const AsC1VAllocator& ac) { | 787 std::ostream& operator<<(std::ostream& os, const AsC1VAllocator& ac) { |
784 Zone tmp_zone(ac.allocator_->code()->zone()->isolate()); | 788 Zone tmp_zone(ac.allocator_->code()->zone()->isolate()); |
785 GraphC1Visualizer(os, &tmp_zone).PrintAllocator(ac.phase_, ac.allocator_); | 789 GraphC1Visualizer(os, &tmp_zone).PrintAllocator(ac.phase_, ac.allocator_); |
786 return os; | 790 return os; |
787 } | 791 } |
788 } | 792 } |
789 } | 793 } |
790 } // namespace v8::internal::compiler | 794 } // namespace v8::internal::compiler |
OLD | NEW |