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

Unified Diff: runtime/vm/flow_graph_inliner.cc

Issue 1190123002: Noopt work: populate empty ICData of getters and setters with function's own class if that getter/s… (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: f Created 5 years, 6 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_inliner.cc
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc
index 5e79772160bd5e5fcc734ec42903698306736512..a433948348df769fa1cb40075c8a4f7d33a6710c 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -59,6 +59,7 @@ DEFINE_FLAG(bool, enable_inlining_annotations, false,
DECLARE_FLAG(bool, compiler_stats);
DECLARE_FLAG(int, deoptimization_counter_threshold);
+DECLARE_FLAG(bool, polymorphic_with_deopt);
DECLARE_FLAG(bool, print_flow_graph);
DECLARE_FLAG(bool, print_flow_graph_optimized);
DECLARE_FLAG(bool, verify_compiler);
@@ -1134,6 +1135,8 @@ class CallSiteInliner : public ValueObject {
for (intptr_t call_idx = 0; call_idx < call_info.length(); ++call_idx) {
PolymorphicInstanceCallInstr* call = call_info[call_idx].call;
if (call->with_checks()) {
+ // PolymorphicInliner introduces deoptimization paths.
+ if (!FLAG_polymorphic_with_deopt) return;
const Function& cl = call_info[call_idx].caller();
intptr_t caller_inlining_id =
call_info[call_idx].caller_graph->inlining_id();

Powered by Google App Engine
This is Rietveld 408576698