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

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: Cleanup 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
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.
koda 2015/10/05 18:13:00 State that there is (at most) one per isolate.
srdjan 2015/10/05 19:16:47 Done.
105 class BackgroundCompiler : public ThreadPool::Task {
106 public:
107 static void EnsureInit(Isolate* isolate);
108
109 static void Stop(BackgroundCompiler* task);
110
111 void CompileOptimized(const Function& function);
112
113 private:
114 explicit BackgroundCompiler(Isolate* isolate);
115
116 virtual void Run();
117
118 void Add(const Function& f) const;
119 RawFunction* RemoveOrNull() const;
120
121 Isolate* isolate_;
122 bool running_;
123 bool* done_;
124 Monitor* monitor_;
125 Monitor* done_monitor_;
126
127 DISALLOW_IMPLICIT_CONSTRUCTORS(BackgroundCompiler);
128 };
129
102 } // namespace dart 130 } // namespace dart
103 131
104 #endif // VM_COMPILER_H_ 132 #endif // VM_COMPILER_H_
OLDNEW
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/compiler.cc » ('j') | runtime/vm/compiler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698