Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler.h |
| diff --git a/runtime/vm/flow_graph_compiler.h b/runtime/vm/flow_graph_compiler.h |
| index 3dc31a07ce518b5f6c1f50b04a6c28d830138b35..1a1dc4d1d8a3d051809835e19ca48e01598924ed 100644 |
| --- a/runtime/vm/flow_graph_compiler.h |
| +++ b/runtime/vm/flow_graph_compiler.h |
| @@ -367,6 +367,15 @@ class FlowGraphCompiler : public ValueObject { |
| // Returns 'true' if regular code generation should be skipped. |
| bool TryIntrinsify(); |
| + void GenerateAssertAssignable(TokenPosition token_pos, |
| + intptr_t deopt_id, |
| + const AbstractType& dst_type, |
| + const String& dst_name, |
| + LocationSummary* locs); |
| + |
| + // DBC emits calls very differently from all other architectures due to its |
|
zra
2016/04/14 18:27:48
I'd leave these in and put UNREACHABLE() or simila
Florian Schneider
2016/04/15 01:17:28
I disagree. If we want to avoid the #ifdef here, o
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
I am with Florian on this one. I think making them
|
| + // interpreted nature. |
| +#if !defined(TARGET_ARCH_DBC) |
| void GenerateRuntimeCall(TokenPosition token_pos, |
| intptr_t deopt_id, |
| const RuntimeEntry& entry, |
| @@ -390,12 +399,6 @@ class FlowGraphCompiler : public ValueObject { |
| LocationSummary* locs, |
| const Function& target); |
| - void GenerateAssertAssignable(TokenPosition token_pos, |
| - intptr_t deopt_id, |
| - const AbstractType& dst_type, |
| - const String& dst_name, |
| - LocationSummary* locs); |
| - |
| void GenerateInstanceOf(TokenPosition token_pos, |
| intptr_t deopt_id, |
| const AbstractType& type, |
| @@ -426,12 +429,6 @@ class FlowGraphCompiler : public ValueObject { |
| void GenerateListTypeCheck(Register kClassIdReg, |
| Label* is_instance_lbl); |
| - void EmitComment(Instruction* instr); |
| - |
| - bool NeedsEdgeCounter(TargetEntryInstr* block); |
| - |
| - void EmitEdgeCounter(intptr_t edge_id); |
| - |
| void EmitOptimizedInstanceCall(const StubEntry& stub_entry, |
| const ICData& ic_data, |
| intptr_t argument_count, |
| @@ -487,8 +484,16 @@ class FlowGraphCompiler : public ValueObject { |
| bool needs_number_check, |
| TokenPosition token_pos); |
| + bool NeedsEdgeCounter(TargetEntryInstr* block); |
| + |
| + void EmitEdgeCounter(intptr_t edge_id); |
| +#endif |
|
zra
2016/04/14 18:27:48
add // !defined(TARGET_ARCH_DBC)
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
Done.
|
| + |
| void EmitTrySync(Instruction* instr, intptr_t try_index); |
| + void EmitComment(Instruction* instr); |
| + |
| + |
|
zra
2016/04/14 18:27:48
Extra space.
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
Done.
|
| intptr_t StackSize() const; |
| // Returns assembler label associated with the given block entry. |
| @@ -635,6 +640,9 @@ class FlowGraphCompiler : public ValueObject { |
| LocationSummary* locs, |
| const ICData& ic_data); |
| + // DBC handles type tests differently from all other architectures due |
|
zra
2016/04/14 18:27:48
ditto.
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
Acknowledged.
|
| + // to its interpreted nature. |
| +#if !defined(TARGET_ARCH_DBC) |
| // Type checking helper methods. |
| void CheckClassIds(Register class_id_reg, |
| const GrowableArray<intptr_t>& class_ids, |
| @@ -688,6 +696,7 @@ class FlowGraphCompiler : public ValueObject { |
| void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false); |
| void CopyParameters(); |
| +#endif |
|
zra
2016/04/14 18:27:48
add // !defined(TARGET_ARCH_DBC)
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
Done.
|
| void GenerateInlinedGetter(intptr_t offset); |
| void GenerateInlinedSetter(intptr_t offset); |
| @@ -720,7 +729,7 @@ class FlowGraphCompiler : public ValueObject { |
| return stackmap_table_builder_; |
| } |
| -#if defined(DEBUG) |
| +#if defined(DEBUG) && !defined(TARGET_ARCH_DBC) |
|
zra
2016/04/14 18:27:48
ditto or add comment.
Vyacheslav Egorov (Google)
2016/04/18 15:56:41
There is a comment in the CC code. Duplicated it h
|
| void FrameStateUpdateWith(Instruction* instr); |
| void FrameStatePush(Definition* defn); |
| void FrameStatePop(intptr_t count); |