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

Unified Diff: runtime/vm/flow_graph_optimizer.h

Issue 161853002: Enable polymorphic inlining of StringBase [] and StringBase codeUnitAt (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 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 | « no previous file | runtime/vm/flow_graph_optimizer.cc » ('j') | runtime/vm/flow_graph_optimizer.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_optimizer.h
diff --git a/runtime/vm/flow_graph_optimizer.h b/runtime/vm/flow_graph_optimizer.h
index 7b469c84727662efc73c5e06ca36ca9156279eda..f68f52bc0dedca1e7d8fb976b984d60096035026 100644
--- a/runtime/vm/flow_graph_optimizer.h
+++ b/runtime/vm/flow_graph_optimizer.h
@@ -120,8 +120,23 @@ class FlowGraphOptimizer : public FlowGraphVisitor {
void ReplaceWithInstanceOf(InstanceCallInstr* instr);
void ReplaceWithTypeCast(InstanceCallInstr* instr);
- LoadIndexedInstr* BuildStringCodeUnitAt(InstanceCallInstr* call,
- intptr_t cid);
+ bool TryReplaceInstanceCallWithInline(InstanceCallInstr* call);
+
+ Definition* PrepareInlineStringIndexOp(Instruction* call,
+ intptr_t cid,
+ Definition* str,
+ Definition* index,
+ Instruction* cursor);
+
+ bool InlineStringCodeUnitAt(Instruction* call,
+ intptr_t cid,
+ TargetEntryInstr** entry,
+ Definition** last);
+
+ bool InlineStringBaseCharAt(Instruction* call,
+ intptr_t cid,
+ TargetEntryInstr** entry,
+ Definition** last);
bool InlineByteArrayViewLoad(Instruction* call,
Definition* receiver,
@@ -151,10 +166,6 @@ class FlowGraphOptimizer : public FlowGraphVisitor {
intptr_t view_cid);
bool BuildByteArrayViewStore(InstanceCallInstr* call,
intptr_t view_cid);
- void PrepareByteArrayViewOp(InstanceCallInstr* call,
- intptr_t receiver_cid,
- intptr_t view_cid,
- Definition** array);
// Insert a check of 'to_check' determined by 'unary_checks'. If the
// check fails it will deoptimize to 'deopt_id' using the deoptimization
« no previous file with comments | « no previous file | runtime/vm/flow_graph_optimizer.cc » ('j') | runtime/vm/flow_graph_optimizer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698