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

Side by Side Diff: src/compiler/instruction-selector.h

Issue 669613002: [turbofan] remove schedule from InstructionSequence (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « src/compiler/instruction.cc ('k') | src/compiler/instruction-selector.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 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ 5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_
6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_
7 7
8 #include <deque> 8 #include <deque>
9 9
10 #include "src/compiler/common-operator.h" 10 #include "src/compiler/common-operator.h"
11 #include "src/compiler/instruction.h" 11 #include "src/compiler/instruction.h"
12 #include "src/compiler/machine-operator.h" 12 #include "src/compiler/machine-operator.h"
13 #include "src/zone-containers.h" 13 #include "src/zone-containers.h"
14 14
15 namespace v8 { 15 namespace v8 {
16 namespace internal { 16 namespace internal {
17 namespace compiler { 17 namespace compiler {
18 18
19 // Forward declarations. 19 // Forward declarations.
20 struct CallBuffer; // TODO(bmeurer): Remove this. 20 struct CallBuffer; // TODO(bmeurer): Remove this.
21 class FlagsContinuation; 21 class FlagsContinuation;
22 22
23 class InstructionSelector FINAL { 23 class InstructionSelector FINAL {
24 public: 24 public:
25 // Forward declarations. 25 // Forward declarations.
26 class Features; 26 class Features;
27 27
28 InstructionSelector(InstructionSequence* sequence, 28 InstructionSelector(InstructionSequence* sequence, Schedule* schedule,
29 SourcePositionTable* source_positions, 29 SourcePositionTable* source_positions,
30 Features features = SupportedFeatures()); 30 Features features = SupportedFeatures());
31 31
32 // Visit code for the entire graph with the included schedule. 32 // Visit code for the entire graph with the included schedule.
33 void SelectInstructions(); 33 void SelectInstructions();
34 34
35 // =========================================================================== 35 // ===========================================================================
36 // ============= Architecture-independent code emission methods. ============= 36 // ============= Architecture-independent code emission methods. =============
37 // =========================================================================== 37 // ===========================================================================
38 38
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 void VisitCall(Node* call); 177 void VisitCall(Node* call);
178 void VisitGoto(BasicBlock* target); 178 void VisitGoto(BasicBlock* target);
179 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); 179 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch);
180 void VisitReturn(Node* value); 180 void VisitReturn(Node* value);
181 void VisitThrow(Node* value); 181 void VisitThrow(Node* value);
182 void VisitDeoptimize(Node* deopt); 182 void VisitDeoptimize(Node* deopt);
183 183
184 // =========================================================================== 184 // ===========================================================================
185 185
186 Linkage* linkage() const { return sequence()->linkage(); } 186 Linkage* linkage() const { return sequence()->linkage(); }
187 Schedule* schedule() const { return sequence()->schedule(); } 187 Schedule* schedule() const { return schedule_; }
188 InstructionSequence* sequence() const { return sequence_; } 188 InstructionSequence* sequence() const { return sequence_; }
189 Zone* instruction_zone() const { return sequence()->zone(); } 189 Zone* instruction_zone() const { return sequence()->zone(); }
190 Zone* zone() { return &zone_; } 190 Zone* zone() { return &zone_; }
191 191
192 // =========================================================================== 192 // ===========================================================================
193 193
194 Zone zone_; 194 Zone zone_;
195 InstructionSequence* sequence_; 195 InstructionSequence* sequence_;
196 SourcePositionTable* source_positions_; 196 SourcePositionTable* source_positions_;
197 Features features_; 197 Features features_;
198 Schedule* schedule_;
198 BasicBlock* current_block_; 199 BasicBlock* current_block_;
199 ZoneDeque<Instruction*> instructions_; 200 ZoneDeque<Instruction*> instructions_;
200 BoolVector defined_; 201 BoolVector defined_;
201 BoolVector used_; 202 BoolVector used_;
202 }; 203 };
203 204
204 } // namespace compiler 205 } // namespace compiler
205 } // namespace internal 206 } // namespace internal
206 } // namespace v8 207 } // namespace v8
207 208
208 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ 209 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_
OLDNEW
« no previous file with comments | « src/compiler/instruction.cc ('k') | src/compiler/instruction-selector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698