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

Unified Diff: runtime/vm/flow_graph_compiler_x64.h

Issue 10873027: Use the location summary to represent safepoint information. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 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
« no previous file with comments | « runtime/vm/flow_graph_compiler_ia32.cc ('k') | runtime/vm/flow_graph_compiler_x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_x64.h
diff --git a/runtime/vm/flow_graph_compiler_x64.h b/runtime/vm/flow_graph_compiler_x64.h
index 89883adaec7fb6abb4e0abe2025ba2fa9dd5383c..f1f8299078303b67802511cce61759dcdaea76c0 100644
--- a/runtime/vm/flow_graph_compiler_x64.h
+++ b/runtime/vm/flow_graph_compiler_x64.h
@@ -81,27 +81,27 @@ class FlowGraphCompiler : public ValueObject {
intptr_t token_pos,
intptr_t try_index,
const RuntimeEntry& entry,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateCall(intptr_t token_pos,
intptr_t try_index,
const ExternalLabel* label,
PcDescriptors::Kind kind,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateAssertAssignable(intptr_t deopt_id,
intptr_t token_pos,
intptr_t try_index,
const AbstractType& dst_type,
const String& dst_name,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateInstanceOf(intptr_t deopt_id,
intptr_t token_pos,
intptr_t try_index,
const AbstractType& type,
bool negate_result,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateInstanceCall(intptr_t deopt_id,
intptr_t token_pos,
@@ -110,7 +110,7 @@ class FlowGraphCompiler : public ValueObject {
intptr_t argument_count,
const Array& argument_names,
intptr_t checked_argument_count,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateStaticCall(intptr_t deopt_id,
intptr_t token_pos,
@@ -118,7 +118,7 @@ class FlowGraphCompiler : public ValueObject {
const Function& function,
intptr_t argument_count,
const Array& argument_names,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void GenerateInlinedMathSqrt(Label* done);
@@ -139,12 +139,14 @@ class FlowGraphCompiler : public ValueObject {
Register temp_reg,
Label* deopt);
- // Returns pc-offset (in bytes) of the pc after the call, can be used to emit
- // pc-descriptor information.
- intptr_t EmitInstanceCall(ExternalLabel* target_label,
- const ICData& ic_data,
- const Array& arguments_descriptor,
- intptr_t argument_count);
+ void EmitInstanceCall(ExternalLabel* target_label,
+ const ICData& ic_data,
+ const Array& arguments_descriptor,
+ intptr_t argument_count,
+ intptr_t deopt_id,
+ intptr_t token_pos,
+ intptr_t try_index,
+ LocationSummary* locs);
void EmitTestAndCall(const ICData& ic_data,
Register class_id_reg,
@@ -155,7 +157,7 @@ class FlowGraphCompiler : public ValueObject {
intptr_t deopt_id,
intptr_t token_index,
intptr_t try_index,
- BitmapBuilder* stack_bitmap);
+ LocationSummary* locs);
void EmitDoubleCompareBranch(Condition true_condition,
XmmRegister left,
@@ -180,6 +182,9 @@ class FlowGraphCompiler : public ValueObject {
intptr_t deopt_id,
intptr_t token_pos,
intptr_t try_index);
+
+ void RecordSafepoint(LocationSummary* locs);
+
Label* AddDeoptStub(intptr_t deopt_id,
intptr_t try_index_,
DeoptReasonId reason);
@@ -215,11 +220,13 @@ class FlowGraphCompiler : public ValueObject {
// Emit code to load a Value into register 'dst'.
void LoadValue(Register dst, Value* value);
- // Returns pc-offset (in bytes) of the pc after the call, can be used to emit
- // pc-descriptor information.
- intptr_t EmitStaticCall(const Function& function,
- const Array& arguments_descriptor,
- intptr_t argument_count);
+ void EmitStaticCall(const Function& function,
+ const Array& arguments_descriptor,
+ intptr_t argument_count,
+ intptr_t deopt_id,
+ intptr_t token_pos,
+ intptr_t try_index,
+ LocationSummary* locs);
// Type checking helper methods.
void CheckClassIds(Register class_id_reg,
« no previous file with comments | « runtime/vm/flow_graph_compiler_ia32.cc ('k') | runtime/vm/flow_graph_compiler_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698