| 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
| 10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 #include "src/crankshaft/s390/lithium-codegen-s390.h" // NOLINT | 61 #include "src/crankshaft/s390/lithium-codegen-s390.h" // NOLINT |
| 62 #elif V8_TARGET_ARCH_X87 | 62 #elif V8_TARGET_ARCH_X87 |
| 63 #include "src/crankshaft/x87/lithium-codegen-x87.h" // NOLINT | 63 #include "src/crankshaft/x87/lithium-codegen-x87.h" // NOLINT |
| 64 #else | 64 #else |
| 65 #error Unsupported target architecture. | 65 #error Unsupported target architecture. |
| 66 #endif | 66 #endif |
| 67 | 67 |
| 68 namespace v8 { | 68 namespace v8 { |
| 69 namespace internal { | 69 namespace internal { |
| 70 | 70 |
| 71 const auto GetRegConfig = RegisterConfiguration::Crankshaft; |
| 72 |
| 71 class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder { | 73 class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder { |
| 72 public: | 74 public: |
| 73 explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) | 75 explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) |
| 74 : HOptimizedGraphBuilder(info) {} | 76 : HOptimizedGraphBuilder(info) {} |
| 75 | 77 |
| 76 #define DEF_VISIT(type) \ | 78 #define DEF_VISIT(type) \ |
| 77 void Visit##type(type* node) override { \ | 79 void Visit##type(type* node) override { \ |
| 78 SourcePosition old_position = SourcePosition::Unknown(); \ | 80 SourcePosition old_position = SourcePosition::Unknown(); \ |
| 79 if (node->position() != RelocInfo::kNoPosition) { \ | 81 if (node->position() != RelocInfo::kNoPosition) { \ |
| 80 old_position = source_position(); \ | 82 old_position = source_position(); \ |
| (...skipping 13464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13545 void HTracer::TraceLiveRange(LiveRange* range, const char* type, | 13547 void HTracer::TraceLiveRange(LiveRange* range, const char* type, |
| 13546 Zone* zone) { | 13548 Zone* zone) { |
| 13547 if (range != NULL && !range->IsEmpty()) { | 13549 if (range != NULL && !range->IsEmpty()) { |
| 13548 PrintIndent(); | 13550 PrintIndent(); |
| 13549 trace_.Add("%d %s", range->id(), type); | 13551 trace_.Add("%d %s", range->id(), type); |
| 13550 if (range->HasRegisterAssigned()) { | 13552 if (range->HasRegisterAssigned()) { |
| 13551 LOperand* op = range->CreateAssignedOperand(zone); | 13553 LOperand* op = range->CreateAssignedOperand(zone); |
| 13552 int assigned_reg = op->index(); | 13554 int assigned_reg = op->index(); |
| 13553 if (op->IsDoubleRegister()) { | 13555 if (op->IsDoubleRegister()) { |
| 13554 trace_.Add(" \"%s\"", | 13556 trace_.Add(" \"%s\"", |
| 13555 DoubleRegister::from_code(assigned_reg).ToString()); | 13557 GetRegConfig()->GetDoubleRegisterName(assigned_reg)); |
| 13556 } else { | 13558 } else { |
| 13557 DCHECK(op->IsRegister()); | 13559 DCHECK(op->IsRegister()); |
| 13558 trace_.Add(" \"%s\"", Register::from_code(assigned_reg).ToString()); | 13560 trace_.Add(" \"%s\"", |
| 13561 GetRegConfig()->GetGeneralRegisterName(assigned_reg)); |
| 13559 } | 13562 } |
| 13560 } else if (range->IsSpilled()) { | 13563 } else if (range->IsSpilled()) { |
| 13561 LOperand* op = range->TopLevel()->GetSpillOperand(); | 13564 LOperand* op = range->TopLevel()->GetSpillOperand(); |
| 13562 if (op->IsDoubleStackSlot()) { | 13565 if (op->IsDoubleStackSlot()) { |
| 13563 trace_.Add(" \"double_stack:%d\"", op->index()); | 13566 trace_.Add(" \"double_stack:%d\"", op->index()); |
| 13564 } else { | 13567 } else { |
| 13565 DCHECK(op->IsStackSlot()); | 13568 DCHECK(op->IsStackSlot()); |
| 13566 trace_.Add(" \"stack:%d\"", op->index()); | 13569 trace_.Add(" \"stack:%d\"", op->index()); |
| 13567 } | 13570 } |
| 13568 } | 13571 } |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13688 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13691 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13689 } | 13692 } |
| 13690 | 13693 |
| 13691 #ifdef DEBUG | 13694 #ifdef DEBUG |
| 13692 graph_->Verify(false); // No full verify. | 13695 graph_->Verify(false); // No full verify. |
| 13693 #endif | 13696 #endif |
| 13694 } | 13697 } |
| 13695 | 13698 |
| 13696 } // namespace internal | 13699 } // namespace internal |
| 13697 } // namespace v8 | 13700 } // namespace v8 |
| OLD | NEW |