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

Unified Diff: runtime/vm/flow_graph_compiler_ia32.h

Issue 10668034: Recognize leaf functions: skip stack check and populating the pc slot, store the pc slot lazily in … (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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_compiler_ia32.h
===================================================================
--- runtime/vm/flow_graph_compiler_ia32.h (revision 9089)
+++ runtime/vm/flow_graph_compiler_ia32.h (working copy)
@@ -28,7 +28,8 @@
FlowGraphCompiler(Assembler* assembler,
const ParsedFunction& parsed_function,
const GrowableArray<BlockEntryInstr*>& block_order,
- bool is_optimizing);
+ bool is_optimizing,
+ bool is_leaf);
~FlowGraphCompiler();
@@ -262,6 +263,10 @@
return block_order_.length() - index - 1;
}
+ // Returns true if the generated code does not call other Dart code.
regis 2012/06/25 23:46:09 Is a runtime call considered Dart code?
srdjan 2012/06/25 23:50:22 Added or runtime.
+ // Only deoptimization is allowed to occur. Closures are not leaf.
+ bool IsLeaf() const;
+
class Assembler* assembler_;
const ParsedFunction& parsed_function_;
const GrowableArray<BlockEntryInstr*>& block_order_;
@@ -276,6 +281,7 @@
GrowableArray<BlockInfo*> block_info_;
GrowableArray<DeoptimizationStub*> deopt_stubs_;
const bool is_optimizing_;
+ const bool is_dart_leaf_;
const Bool& bool_true_;
const Bool& bool_false_;

Powered by Google App Engine
This is Rietveld 408576698