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

Unified Diff: runtime/vm/flow_graph_inliner.h

Issue 817823002: Add inlining ranges/intervals to code objects so that we can map a pc to the inlined stack. The map… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years 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 | « runtime/vm/flow_graph_compiler.cc ('k') | runtime/vm/flow_graph_inliner.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_inliner.h
===================================================================
--- runtime/vm/flow_graph_inliner.h (revision 42521)
+++ runtime/vm/flow_graph_inliner.h (working copy)
@@ -6,28 +6,38 @@
#define VM_FLOW_GRAPH_INLINER_H_
#include "vm/allocation.h"
+#include "vm/growable_array.h"
namespace dart {
class Field;
class FlowGraph;
class Function;
-template <typename T> class GrowableArray;
class FlowGraphInliner : ValueObject {
public:
- explicit FlowGraphInliner(FlowGraph* flow_graph) : flow_graph_(flow_graph) { }
+ FlowGraphInliner(FlowGraph* flow_graph,
+ GrowableArray<const Function*>* inline_id_to_function)
+ : flow_graph_(flow_graph), inline_id_to_function_(inline_id_to_function) {
+ }
// The flow graph is destructively updated upon inlining.
void Inline();
// Compute graph info if it was not already computed or if 'force' is true.
static void CollectGraphInfo(FlowGraph* flow_graph, bool force = false);
+ static void SetInliningId(const FlowGraph& flow_graph, intptr_t inlining_id);
static bool AlwaysInline(const Function& function);
+ FlowGraph* flow_graph() const { return flow_graph_; }
+ intptr_t NextInlineId(const Function& function);
+
private:
+ friend class CallSiteInliner;
+
FlowGraph* flow_graph_;
+ GrowableArray<const Function*>* inline_id_to_function_;
DISALLOW_COPY_AND_ASSIGN(FlowGraphInliner);
};
« no previous file with comments | « runtime/vm/flow_graph_compiler.cc ('k') | runtime/vm/flow_graph_inliner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698