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

Unified Diff: runtime/vm/flow_graph_compiler.h

Issue 1288863006: Use zone allocated growable array to populate interim static and stub calls table, thus allocating … (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: add comment Created 5 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/compiler.cc ('k') | runtime/vm/flow_graph_compiler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler.h
diff --git a/runtime/vm/flow_graph_compiler.h b/runtime/vm/flow_graph_compiler.h
index 536720e2ac7c4059318294e362ff030df763ae9a..19836136e28ca6dbdd3850924c8d7a9a9f43059f 100644
--- a/runtime/vm/flow_graph_compiler.h
+++ b/runtime/vm/flow_graph_compiler.h
@@ -662,6 +662,17 @@ class FlowGraphCompiler : public ValueObject {
void FrameStateClear();
#endif
+ // This struct contains either function or code, the other one being NULL.
+ struct StaticCallsStruct {
Ivan Posva 2015/08/20 23:53:36 This struct has a constructor, shouldn't it be a c
srdjan 2015/08/21 16:56:14 This is a pattern that we use throughout the VM. D
+ intptr_t offset;
+ const Function* function; // Can be NULL.
+ const Code* code; // Can be NULL.
+ StaticCallsStruct(intptr_t offset_arg,
+ const Function* function_arg,
+ const Code* code_arg)
+ : offset(offset_arg), function(function_arg), code(code_arg) {}
Ivan Posva 2015/08/20 23:53:36 How about asserting that the handles being passed
srdjan 2015/08/21 16:56:14 Thanks, will add checks for zone handles in next C
+ };
+
Isolate* isolate_;
Zone* zone_;
Assembler* assembler_;
@@ -683,11 +694,10 @@ class FlowGraphCompiler : public ValueObject {
GrowableArray<BlockInfo*> block_info_;
GrowableArray<CompilerDeoptInfo*> deopt_infos_;
GrowableArray<SlowPathCode*> slow_path_code_;
- // Stores: [code offset, function or null, null(code)].
// Stores static call targets as well as stub targets.
// TODO(srdjan): Evaluate if we should store allocation stub targets into a
// separate table?
- const GrowableObjectArray& static_calls_target_table_;
+ GrowableArray<StaticCallsStruct> static_calls_target_table_;
const bool is_optimizing_;
// Set to true if optimized code has IC calls.
bool may_reoptimize_;
« no previous file with comments | « runtime/vm/compiler.cc ('k') | runtime/vm/flow_graph_compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698