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

Unified Diff: src/compiler.h

Issue 23710014: Introduce concurrent on-stack replacement. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 3 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 | src/compiler.cc » ('j') | src/compiler.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler.h
diff --git a/src/compiler.h b/src/compiler.h
index bdb168fe0d107a397a724bded304902be20a8774..e8e1fc5743a5570ff9a692f62c6004569780cb9b 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -496,11 +496,13 @@ class LChunk;
// using last_status().
class OptimizingCompiler: public ZoneObject {
public:
- explicit OptimizingCompiler(CompilationInfo* info)
+ explicit OptimizingCompiler(CompilationInfo* info,
+ uint32_t osr_pc_offset = 0)
: info_(info),
graph_builder_(NULL),
graph_(NULL),
chunk_(NULL),
+ osr_pc_offset_(osr_pc_offset),
titzer 2013/09/02 17:03:35 This is the PC offset of the backedge. It seems we
Yang 2013/09/03 08:50:10 Done.
last_status_(FAILED) { }
enum Status {
@@ -514,6 +516,7 @@ class OptimizingCompiler: public ZoneObject {
Status last_status() const { return last_status_; }
CompilationInfo* info() const { return info_; }
Isolate* isolate() const { return info()->isolate(); }
+ uint32_t osr_pc_offset() { return osr_pc_offset_; }
MUST_USE_RESULT Status AbortOptimization() {
info_->AbortOptimization();
@@ -529,6 +532,7 @@ class OptimizingCompiler: public ZoneObject {
TimeDelta time_taken_to_create_graph_;
TimeDelta time_taken_to_optimize_;
TimeDelta time_taken_to_codegen_;
+ uint32_t osr_pc_offset_;
Status last_status_;
MUST_USE_RESULT Status SetLastStatus(Status status) {
@@ -600,7 +604,8 @@ class Compiler : public AllStatic {
// success and false if the compilation resulted in a stack overflow.
static bool CompileLazy(CompilationInfo* info);
- static void RecompileConcurrent(Handle<JSFunction> function);
+ static void RecompileConcurrent(Handle<JSFunction> function,
+ uint32_t osr_pc_offset = 0);
// Compile a shared function info object (the function is possibly lazily
// compiled).
@@ -615,6 +620,12 @@ class Compiler : public AllStatic {
static void InstallOptimizedCode(OptimizingCompiler* info);
+ static bool CompileForOnStackReplacement(Handle<JSFunction> function,
+ BailoutId* ast_id_out);
+
+ static bool CompileForConcurrentOSR(Handle<JSFunction> function,
+ BailoutId* ast_id_out);
+
#ifdef ENABLE_DEBUGGER_SUPPORT
static bool MakeCodeForLiveEdit(CompilationInfo* info);
#endif
« no previous file with comments | « no previous file | src/compiler.cc » ('j') | src/compiler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698