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

Unified Diff: runtime/vm/flow_graph_inliner.cc

Issue 1410733006: More general CHA-based inlining and devirtualization for precompiled code. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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 7aa1adb0d0e8b9348798baa1629930dcf3386c03..9de829e638089f6c400b33154a597eb083ecbe4d 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -626,6 +626,16 @@ class CallSiteInliner : public ValueObject {
return false;
}
+ // Function has not beed compiled yet. With lazy compilation a function
+ // that has not been executed won't have any type feedback. In
+ // precompilation mode we don't rely on type feedback.
srdjan 2015/10/21 17:37:46 This can be a problem for Siva's change where we s
rmacnak 2015/10/21 18:00:30 Can this check if the function has an ic data arra
Florian Schneider 2015/10/22 13:59:25 I would opt for checking the ic data array, but I
srdjan 2015/10/22 15:31:26 OK, to replicate current behavior. CC-ing Siva to
+ if (!Compiler::always_optimize() && !function.HasCode()) {
+ TRACE_INLINING(THR_Print(" Bailout: not compiled yet\n"));
+ PRINT_INLINING_TREE("Not compiled",
+ &call_data->caller, &function, call_data->call);
+ return false;
+ }
+
// Abort if this function has deoptimized too much.
if (function.deoptimization_counter() >=
FLAG_deoptimization_counter_threshold) {

Powered by Google App Engine
This is Rietveld 408576698