| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 8ceb61db9ce3e6e05324f715097858e20ffc8767..84416fe2f50affd4b3dd6eb99871f5bc7226ae45 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -86,6 +86,7 @@ class CompilationInfo {
|
| ScriptDataImpl* pre_parse_data() const { return pre_parse_data_; }
|
| Handle<Context> context() const { return context_; }
|
| BailoutId osr_ast_id() const { return osr_ast_id_; }
|
| + uint32_t osr_pc_offset() const { return osr_pc_offset_; }
|
| int opt_count() const { return opt_count_; }
|
| int num_parameters() const;
|
| int num_heap_slots() const;
|
| @@ -505,9 +506,9 @@ class LChunk;
|
| // fail, bail-out to the full code generator or succeed. Apart from
|
| // their return value, the status of the phase last run can be checked
|
| // using last_status().
|
| -class OptimizingCompiler: public ZoneObject {
|
| +class RecompileJob: public ZoneObject {
|
| public:
|
| - explicit OptimizingCompiler(CompilationInfo* info)
|
| + explicit RecompileJob(CompilationInfo* info)
|
| : info_(info),
|
| graph_builder_(NULL),
|
| graph_(NULL),
|
| @@ -532,6 +533,13 @@ class OptimizingCompiler: public ZoneObject {
|
| return SetLastStatus(BAILED_OUT);
|
| }
|
|
|
| + void WaitForInstall() {
|
| + ASSERT(info_->is_osr());
|
| + awaiting_install_ = true;
|
| + }
|
| +
|
| + bool IsWaitingForInstall() { return awaiting_install_; }
|
| +
|
| private:
|
| CompilationInfo* info_;
|
| HOptimizedGraphBuilder* graph_builder_;
|
| @@ -541,6 +549,7 @@ class OptimizingCompiler: public ZoneObject {
|
| TimeDelta time_taken_to_optimize_;
|
| TimeDelta time_taken_to_codegen_;
|
| Status last_status_;
|
| + bool awaiting_install_;
|
|
|
| MUST_USE_RESULT Status SetLastStatus(Status status) {
|
| last_status_ = status;
|
| @@ -549,9 +558,8 @@ class OptimizingCompiler: public ZoneObject {
|
| void RecordOptimizationStats();
|
|
|
| struct Timer {
|
| - Timer(OptimizingCompiler* compiler, TimeDelta* location)
|
| - : compiler_(compiler),
|
| - location_(location) {
|
| + Timer(RecompileJob* job, TimeDelta* location)
|
| + : job_(job), location_(location) {
|
| ASSERT(location_ != NULL);
|
| timer_.Start();
|
| }
|
| @@ -560,7 +568,7 @@ class OptimizingCompiler: public ZoneObject {
|
| *location_ += timer_.Elapsed();
|
| }
|
|
|
| - OptimizingCompiler* compiler_;
|
| + RecompileJob* job_;
|
| ElapsedTimer timer_;
|
| TimeDelta* location_;
|
| };
|
| @@ -625,7 +633,7 @@ class Compiler : public AllStatic {
|
| bool is_toplevel,
|
| Handle<Script> script);
|
|
|
| - static Handle<Code> InstallOptimizedCode(OptimizingCompiler* info);
|
| + static Handle<Code> InstallOptimizedCode(RecompileJob* job);
|
|
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| static bool MakeCodeForLiveEdit(CompilationInfo* info);
|
|
|