Index: src/compiler/code-generator.h |
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h |
index ff8e5b9368b65a52ebef8b341f92cd088bbc607d..8e56ea0e18c8d581ce87d8ed205479fcefc5626a 100644 |
--- a/src/compiler/code-generator.h |
+++ b/src/compiler/code-generator.h |
@@ -48,17 +48,20 @@ class InstructionOperandIterator { |
// Generates native code for a sequence of instructions. |
class CodeGenerator final : public GapResolver::Assembler { |
public: |
- explicit CodeGenerator(Frame* frame, Linkage* linkage, |
- InstructionSequence* code, CompilationInfo* info); |
+ explicit CodeGenerator(Zone* zone, CompilationInfo* info); |
Michael Starzinger
2016/08/11 14:16:26
nit: Doesn't need to be "explicit" with more than
ahaas
2016/08/11 14:54:19
Done.
|
+ void Initialize(Frame* frame, Linkage* linkage, InstructionSequence* code); |
Michael Starzinger
2016/08/11 14:16:26
nit: Can we add a "// Initialize before calling as
ahaas
2016/08/11 14:54:19
Done.
|
// Generate native code. |
Michael Starzinger
2016/08/11 14:16:26
nit: Empty whitespace between declarations for rea
ahaas
2016/08/11 14:54:19
Done.
|
- Handle<Code> GenerateCode(); |
+ bool AssembleCode(); |
+ // Finishes the code object generated in AssembleCode. |
Michael Starzinger
2016/08/11 14:16:26
nit: Empty whitespace between declarations for rea
ahaas
2016/08/11 14:54:19
Done.
|
+ Handle<Code> FinishCodeObject(); |
InstructionSequence* code() const { return code_; } |
FrameAccessState* frame_access_state() const { return frame_access_state_; } |
const Frame* frame() const { return frame_access_state_->frame(); } |
Isolate* isolate() const { return info_->isolate(); } |
Linkage* linkage() const { return linkage_; } |
+ bool assemble_code_successful() { return assemble_code_successful_; } |
Label* GetLabel(RpoNumber rpo) { return &labels_[rpo.ToSize()]; } |
@@ -69,9 +72,6 @@ class CodeGenerator final : public GapResolver::Assembler { |
Zone* zone() const { return code()->zone(); } |
CompilationInfo* info() const { return info_; } |
- // Create the FrameAccessState object. The Frame is immutable from here on. |
- void CreateFrameAccessState(Frame* frame); |
- |
// Architecture - specific frame finalization. |
void FinishFrame(Frame* frame); |
@@ -257,11 +257,11 @@ class CodeGenerator final : public GapResolver::Assembler { |
friend class OutOfLineCode; |
FrameAccessState* frame_access_state_; |
- Linkage* const linkage_; |
- InstructionSequence* const code_; |
+ Linkage* linkage_; |
+ InstructionSequence* code_; |
UnwindingInfoWriter unwinding_info_writer_; |
CompilationInfo* const info_; |
- Label* const labels_; |
+ Label* labels_; |
Label return_label_; |
RpoNumber current_block_; |
SourcePosition current_source_position_; |
@@ -279,6 +279,7 @@ class CodeGenerator final : public GapResolver::Assembler { |
OutOfLineCode* ools_; |
int osr_pc_offset_; |
SourcePositionTableBuilder source_position_table_builder_; |
+ bool assemble_code_successful_; |
}; |
} // namespace compiler |