OLD | NEW |
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_CODE_GENERATOR_H_ | 5 #ifndef V8_COMPILER_CODE_GENERATOR_H_ |
6 #define V8_COMPILER_CODE_GENERATOR_H_ | 6 #define V8_COMPILER_CODE_GENERATOR_H_ |
7 | 7 |
8 #include "src/compiler.h" | |
9 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
10 #include "src/compiler/instruction.h" | 9 #include "src/compiler/instruction.h" |
11 #include "src/compiler/unwinding-info-writer.h" | 10 #include "src/compiler/unwinding-info-writer.h" |
12 #include "src/deoptimizer.h" | 11 #include "src/deoptimizer.h" |
13 #include "src/macro-assembler.h" | 12 #include "src/macro-assembler.h" |
14 #include "src/safepoint-table.h" | 13 #include "src/safepoint-table.h" |
15 #include "src/source-position-table.h" | 14 #include "src/source-position-table.h" |
16 | 15 |
17 namespace v8 { | 16 namespace v8 { |
18 namespace internal { | 17 namespace internal { |
| 18 |
| 19 class CompilationInfo; |
| 20 |
19 namespace compiler { | 21 namespace compiler { |
20 | 22 |
21 // Forward declarations. | 23 // Forward declarations. |
22 class DeoptimizationExit; | 24 class DeoptimizationExit; |
23 class FrameAccessState; | 25 class FrameAccessState; |
24 class Linkage; | 26 class Linkage; |
25 class OutOfLineCode; | 27 class OutOfLineCode; |
26 | 28 |
27 struct BranchInfo { | 29 struct BranchInfo { |
28 FlagsCondition condition; | 30 FlagsCondition condition; |
(...skipping 22 matching lines...) Expand all Loading... |
51 public: | 53 public: |
52 explicit CodeGenerator(Frame* frame, Linkage* linkage, | 54 explicit CodeGenerator(Frame* frame, Linkage* linkage, |
53 InstructionSequence* code, CompilationInfo* info); | 55 InstructionSequence* code, CompilationInfo* info); |
54 | 56 |
55 // Generate native code. | 57 // Generate native code. |
56 Handle<Code> GenerateCode(); | 58 Handle<Code> GenerateCode(); |
57 | 59 |
58 InstructionSequence* code() const { return code_; } | 60 InstructionSequence* code() const { return code_; } |
59 FrameAccessState* frame_access_state() const { return frame_access_state_; } | 61 FrameAccessState* frame_access_state() const { return frame_access_state_; } |
60 const Frame* frame() const { return frame_access_state_->frame(); } | 62 const Frame* frame() const { return frame_access_state_->frame(); } |
61 Isolate* isolate() const { return info_->isolate(); } | 63 Isolate* isolate() const; |
62 Linkage* linkage() const { return linkage_; } | 64 Linkage* linkage() const { return linkage_; } |
63 | 65 |
64 Label* GetLabel(RpoNumber rpo) { return &labels_[rpo.ToSize()]; } | 66 Label* GetLabel(RpoNumber rpo) { return &labels_[rpo.ToSize()]; } |
65 | 67 |
66 private: | 68 private: |
67 MacroAssembler* masm() { return &masm_; } | 69 MacroAssembler* masm() { return &masm_; } |
68 GapResolver* resolver() { return &resolver_; } | 70 GapResolver* resolver() { return &resolver_; } |
69 SafepointTableBuilder* safepoints() { return &safepoints_; } | 71 SafepointTableBuilder* safepoints() { return &safepoints_; } |
70 Zone* zone() const { return code()->zone(); } | 72 Zone* zone() const { return code()->zone(); } |
71 CompilationInfo* info() const { return info_; } | 73 CompilationInfo* info() const { return info_; } |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 OutOfLineCode* ools_; | 282 OutOfLineCode* ools_; |
281 int osr_pc_offset_; | 283 int osr_pc_offset_; |
282 SourcePositionTableBuilder source_position_table_builder_; | 284 SourcePositionTableBuilder source_position_table_builder_; |
283 }; | 285 }; |
284 | 286 |
285 } // namespace compiler | 287 } // namespace compiler |
286 } // namespace internal | 288 } // namespace internal |
287 } // namespace v8 | 289 } // namespace v8 |
288 | 290 |
289 #endif // V8_COMPILER_CODE_GENERATOR_H | 291 #endif // V8_COMPILER_CODE_GENERATOR_H |
OLD | NEW |