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

Unified Diff: runtime/vm/flow_graph_compiler_ia32.h

Issue 10696151: Skeleton of a linear scan register allocator. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address comments Created 8 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_compiler_ia32.h
diff --git a/runtime/vm/flow_graph_compiler_ia32.h b/runtime/vm/flow_graph_compiler_ia32.h
index 0577647532844c80853ff7b61ef75a90853f0ac0..d7622543219900685c55cae5f993bde277f13ce0 100644
--- a/runtime/vm/flow_graph_compiler_ia32.h
+++ b/runtime/vm/flow_graph_compiler_ia32.h
@@ -29,6 +29,7 @@ class FlowGraphCompiler : public ValueObject {
const ParsedFunction& parsed_function,
const GrowableArray<BlockEntryInstr*>& block_order,
bool is_optimizing,
+ bool is_ssa,
bool is_leaf);
~FlowGraphCompiler();
@@ -282,6 +283,7 @@ class FlowGraphCompiler : public ValueObject {
GrowableArray<BlockInfo*> block_info_;
GrowableArray<DeoptimizationStub*> deopt_stubs_;
const bool is_optimizing_;
+ const bool is_ssa_;
const bool is_dart_leaf_;
const Bool& bool_true_;
@@ -289,39 +291,15 @@ class FlowGraphCompiler : public ValueObject {
const Class& double_class_;
FrameRegisterAllocator frame_register_allocator_;
+ ParallelMoveResolver parallel_move_resolver_;
- DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
-};
+ // Currently instructions generate deopt stubs internally by
+ // calling AddDeoptStub. To communicate deoptimization environment
+ // that should be used when deoptimizing we store it in this variable.
+ // In future AddDeoptStub should be moved out of the instruction template.
+ Environment* pending_deoptimization_env_;
-
-class DeoptimizationStub : public ZoneAllocated {
- public:
- DeoptimizationStub(intptr_t deopt_id,
- intptr_t deopt_token_pos,
- intptr_t try_index,
- DeoptReasonId reason)
- : deopt_id_(deopt_id),
- deopt_token_pos_(deopt_token_pos),
- try_index_(try_index),
- reason_(reason),
- registers_(2),
- entry_label_() {}
-
- void Push(Register reg) { registers_.Add(reg); }
- Label* entry_label() { return &entry_label_; }
-
- // Implementation is in architecture specific file.
- void GenerateCode(FlowGraphCompiler* compiler);
-
- private:
- const intptr_t deopt_id_;
- const intptr_t deopt_token_pos_;
- const intptr_t try_index_;
- const DeoptReasonId reason_;
- GrowableArray<Register> registers_;
- Label entry_label_;
-
- DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub);
+ DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
};
} // namespace dart

Powered by Google App Engine
This is Rietveld 408576698