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

Side by Side Diff: src/compiler/register-allocator.cc

Issue 2092413002: [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compile. Created 4 years, 5 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/pipeline.cc ('k') | src/crankshaft/arm/lithium-codegen-arm.cc » ('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/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/compiler/linkage.h" 6 #include "src/compiler/linkage.h"
7 #include "src/compiler/register-allocator.h" 7 #include "src/compiler/register-allocator.h"
8 #include "src/string-stream.h" 8 #include "src/string-stream.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 77
78 bool IsOutputFPRegisterOf(Instruction* instr, MachineRepresentation rep, 78 bool IsOutputFPRegisterOf(Instruction* instr, MachineRepresentation rep,
79 int code) { 79 int code) {
80 for (size_t i = 0; i < instr->OutputCount(); i++) { 80 for (size_t i = 0; i < instr->OutputCount(); i++) {
81 InstructionOperand* output = instr->OutputAt(i); 81 InstructionOperand* output = instr->OutputAt(i);
82 if (output->IsFPRegister()) { 82 if (output->IsFPRegister()) {
83 const LocationOperand* op = LocationOperand::cast(output); 83 const LocationOperand* op = LocationOperand::cast(output);
84 if (kSimpleFPAliasing) { 84 if (kSimpleFPAliasing) {
85 if (op->register_code() == code) return true; 85 if (op->register_code() == code) return true;
86 } else { 86 } else {
87 if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN) 87 if (RegisterConfiguration::Turbofan()->AreAliases(
88 ->AreAliases(op->representation(), op->register_code(), rep, 88 op->representation(), op->register_code(), rep, code)) {
89 code)) {
90 return true; 89 return true;
91 } 90 }
92 } 91 }
93 } 92 }
94 } 93 }
95 return false; 94 return false;
96 } 95 }
97 96
98 97
99 // TODO(dcarney): fix frame to allow frame accesses to half size location. 98 // TODO(dcarney): fix frame to allow frame accesses to half size location.
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 wrapper.register_configuration_ = config; 815 wrapper.register_configuration_ = config;
817 for (const LiveRange* i = this; i != nullptr; i = i->next()) { 816 for (const LiveRange* i = this; i != nullptr; i = i->next()) {
818 wrapper.range_ = i; 817 wrapper.range_ = i;
819 os << wrapper << std::endl; 818 os << wrapper << std::endl;
820 if (!with_children) break; 819 if (!with_children) break;
821 } 820 }
822 } 821 }
823 822
824 823
825 void LiveRange::Print(bool with_children) const { 824 void LiveRange::Print(bool with_children) const {
826 const RegisterConfiguration* config = 825 Print(RegisterConfiguration::Turbofan(), with_children);
827 RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
828 Print(config, with_children);
829 } 826 }
830 827
831 828
832 struct TopLevelLiveRange::SpillMoveInsertionList : ZoneObject { 829 struct TopLevelLiveRange::SpillMoveInsertionList : ZoneObject {
833 SpillMoveInsertionList(int gap_index, InstructionOperand* operand, 830 SpillMoveInsertionList(int gap_index, InstructionOperand* operand,
834 SpillMoveInsertionList* next) 831 SpillMoveInsertionList* next)
835 : gap_index(gap_index), operand(operand), next(next) {} 832 : gap_index(gap_index), operand(operand), next(next) {}
836 const int gap_index; 833 const int gap_index;
837 InstructionOperand* const operand; 834 InstructionOperand* const operand;
838 SpillMoveInsertionList* const next; 835 SpillMoveInsertionList* const next;
(...skipping 2930 matching lines...) Expand 10 before | Expand all | Expand 10 after
3769 } 3766 }
3770 } 3767 }
3771 } 3768 }
3772 } 3769 }
3773 } 3770 }
3774 3771
3775 3772
3776 } // namespace compiler 3773 } // namespace compiler
3777 } // namespace internal 3774 } // namespace internal
3778 } // namespace v8 3775 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/pipeline.cc ('k') | src/crankshaft/arm/lithium-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698