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

Unified Diff: runtime/vm/flow_graph.h

Issue 2894953002: Support inlining of calls where type arguments are passed to generic functions. (Closed)
Patch Set: Created 3 years, 7 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.h
diff --git a/runtime/vm/flow_graph.h b/runtime/vm/flow_graph.h
index 705f6743a6004028fe20aadbfa08396b546beae9..91336924d83b5faabf4dffda48657e95275d61a4 100644
--- a/runtime/vm/flow_graph.h
+++ b/runtime/vm/flow_graph.h
@@ -103,11 +103,20 @@ class FlowGraph : public ZoneAllocated {
return parsed_function().current_context_var();
}
+ LocalVariable* FunctionTypeArgsVar() const {
+ return parsed_function().function_type_arguments();
+ }
+
intptr_t CurrentContextEnvIndex() const {
return parsed_function().current_context_var()->BitIndexIn(
num_non_copied_params_);
}
+ intptr_t FunctionTypeArgsEnvIndex() const {
+ return parsed_function().function_type_arguments()->BitIndexIn(
+ num_non_copied_params_);
+ }
+
// Flow graph orders.
const GrowableArray<BlockEntryInstr*>& preorder() const { return preorder_; }
const GrowableArray<BlockEntryInstr*>& postorder() const {
@@ -200,7 +209,8 @@ class FlowGraph : public ZoneAllocated {
// Operations on the flow graph.
void ComputeSSA(intptr_t next_virtual_register_number,
- ZoneGrowableArray<Definition*>* inlining_parameters);
+ ZoneGrowableArray<Definition*>* inlining_parameters,
+ Definition* inlining_type_args);
// Verification methods for debugging.
bool VerifyUseLists();
@@ -334,7 +344,8 @@ class FlowGraph : public ZoneAllocated {
void Rename(GrowableArray<PhiInstr*>* live_phis,
VariableLivenessAnalysis* variable_liveness,
- ZoneGrowableArray<Definition*>* inlining_parameters);
+ ZoneGrowableArray<Definition*>* inlining_parameters,
+ Definition* inlining_type_args);
void RenameRecursive(BlockEntryInstr* block_entry,
GrowableArray<Definition*>* env,
GrowableArray<PhiInstr*>* live_phis,
« no previous file with comments | « runtime/vm/compiler.cc ('k') | runtime/vm/flow_graph.cc » ('j') | runtime/vm/flow_graph.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698