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

Side by Side Diff: runtime/vm/compiler.h

Issue 1386503002: Initial design for background compilation (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address Comments 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 unified diff | Download patch
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/compiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_COMPILER_H_ 5 #ifndef VM_COMPILER_H_
6 #define VM_COMPILER_H_ 6 #define VM_COMPILER_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/growable_array.h" 9 #include "vm/growable_array.h"
10 #include "vm/runtime_entry.h" 10 #include "vm/runtime_entry.h"
11 #include "vm/thread_pool.h"
11 12
12 namespace dart { 13 namespace dart {
13 14
14 // Forward declarations. 15 // Forward declarations.
15 class Class; 16 class Class;
16 class Function; 17 class Function;
17 class Library; 18 class Library;
18 class ParsedFunction; 19 class ParsedFunction;
19 class RawInstance; 20 class RawInstance;
20 class Script; 21 class Script;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 static bool allow_recompilation() { return allow_recompilation_; } 93 static bool allow_recompilation() { return allow_recompilation_; }
93 static void set_allow_recompilation(bool value) { 94 static void set_allow_recompilation(bool value) {
94 allow_recompilation_ = value; 95 allow_recompilation_ = value;
95 } 96 }
96 97
97 private: 98 private:
98 static bool always_optimize_; 99 static bool always_optimize_;
99 static bool allow_recompilation_; 100 static bool allow_recompilation_;
100 }; 101 };
101 102
103
104 // Class to run optimizing compilation in a background thread.
105 // Current implementation: one task per isolate, it dies with the owning
106 // isolate.
107 class BackgroundCompiler : public ThreadPool::Task {
108 public:
109 static void EnsureInit(Isolate* isolate);
110
111 static void Stop(BackgroundCompiler* task);
112
113 void CompileOptimized(const Function& function);
114
115 private:
116 explicit BackgroundCompiler(Isolate* isolate);
117
118 virtual void Run();
119
120 void Add(const Function& f) const;
121 RawFunction* RemoveOrNull() const;
122
123 Isolate* isolate_;
124 bool running_;
125 bool* done_;
126 Monitor* monitor_;
127 Monitor* done_monitor_;
128
129 DISALLOW_IMPLICIT_CONSTRUCTORS(BackgroundCompiler);
130 };
131
102 } // namespace dart 132 } // namespace dart
103 133
104 #endif // VM_COMPILER_H_ 134 #endif // VM_COMPILER_H_
OLDNEW
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698