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

Side by Side Diff: src/runtime/runtime-compiler.cc

Issue 1087763003: Reland "Remove support for thread-based recompilation" (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 5 years, 8 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 | « src/optimizing-compiler-thread.cc ('k') | src/runtime/runtime-test.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/arguments.h" 7 #include "src/arguments.h"
8 #include "src/compiler.h" 8 #include "src/compiler.h"
9 #include "src/deoptimizer.h" 9 #include "src/deoptimizer.h"
10 #include "src/frames.h" 10 #include "src/frames.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 (function->shared()->ast_node_count() > 512) 225 (function->shared()->ast_node_count() > 512)
226 ? Compiler::CONCURRENT 226 ? Compiler::CONCURRENT
227 : Compiler::NOT_CONCURRENT; 227 : Compiler::NOT_CONCURRENT;
228 Handle<Code> result = Handle<Code>::null(); 228 Handle<Code> result = Handle<Code>::null();
229 229
230 OptimizedCompileJob* job = NULL; 230 OptimizedCompileJob* job = NULL;
231 if (mode == Compiler::CONCURRENT) { 231 if (mode == Compiler::CONCURRENT) {
232 // Gate the OSR entry with a stack check. 232 // Gate the OSR entry with a stack check.
233 BackEdgeTable::AddStackCheck(caller_code, pc_offset); 233 BackEdgeTable::AddStackCheck(caller_code, pc_offset);
234 // Poll already queued compilation jobs. 234 // Poll already queued compilation jobs.
235 OptimizingCompilerThread* thread = isolate->optimizing_compiler_thread(); 235 OptimizingCompileDispatcher* dispatcher =
236 if (thread->IsQueuedForOSR(function, ast_id)) { 236 isolate->optimizing_compile_dispatcher();
237 if (dispatcher->IsQueuedForOSR(function, ast_id)) {
237 if (FLAG_trace_osr) { 238 if (FLAG_trace_osr) {
238 PrintF("[OSR - Still waiting for queued: "); 239 PrintF("[OSR - Still waiting for queued: ");
239 function->PrintName(); 240 function->PrintName();
240 PrintF(" at AST id %d]\n", ast_id.ToInt()); 241 PrintF(" at AST id %d]\n", ast_id.ToInt());
241 } 242 }
242 return NULL; 243 return NULL;
243 } 244 }
244 245
245 job = thread->FindReadyOSRCandidate(function, ast_id); 246 job = dispatcher->FindReadyOSRCandidate(function, ast_id);
246 } 247 }
247 248
248 if (job != NULL) { 249 if (job != NULL) {
249 if (FLAG_trace_osr) { 250 if (FLAG_trace_osr) {
250 PrintF("[OSR - Found ready: "); 251 PrintF("[OSR - Found ready: ");
251 function->PrintName(); 252 function->PrintName();
252 PrintF(" at AST id %d]\n", ast_id.ToInt()); 253 PrintF(" at AST id %d]\n", ast_id.ToInt());
253 } 254 }
254 result = Compiler::GetConcurrentlyOptimizedCode(job); 255 result = Compiler::GetConcurrentlyOptimizedCode(job);
255 } else if (IsSuitableForOnStackReplacement(isolate, function, caller_code)) { 256 } else if (IsSuitableForOnStackReplacement(isolate, function, caller_code)) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 DCHECK(args.length() == 1); 318 DCHECK(args.length() == 1);
318 CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); 319 CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
319 320
320 // First check if this is a real stack overflow. 321 // First check if this is a real stack overflow.
321 StackLimitCheck check(isolate); 322 StackLimitCheck check(isolate);
322 if (check.JsHasOverflowed()) { 323 if (check.JsHasOverflowed()) {
323 SealHandleScope shs(isolate); 324 SealHandleScope shs(isolate);
324 return isolate->StackOverflow(); 325 return isolate->StackOverflow();
325 } 326 }
326 327
327 isolate->optimizing_compiler_thread()->InstallOptimizedFunctions(); 328 isolate->optimizing_compile_dispatcher()->InstallOptimizedFunctions();
328 return (function->IsOptimized()) ? function->code() 329 return (function->IsOptimized()) ? function->code()
329 : function->shared()->code(); 330 : function->shared()->code();
330 } 331 }
331 332
332 333
333 bool CodeGenerationFromStringsAllowed(Isolate* isolate, 334 bool CodeGenerationFromStringsAllowed(Isolate* isolate,
334 Handle<Context> context) { 335 Handle<Context> context) {
335 DCHECK(context->allow_code_gen_from_strings()->IsFalse()); 336 DCHECK(context->allow_code_gen_from_strings()->IsFalse());
336 // Check with callback if set. 337 // Check with callback if set.
337 AllowCodeGenerationFromStringsCallback callback = 338 AllowCodeGenerationFromStringsCallback callback =
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 DCHECK(is_valid_language_mode(args.smi_at(4))); 436 DCHECK(is_valid_language_mode(args.smi_at(4)));
436 LanguageMode language_mode = static_cast<LanguageMode>(args.smi_at(4)); 437 LanguageMode language_mode = static_cast<LanguageMode>(args.smi_at(4));
437 DCHECK(args[5]->IsSmi()); 438 DCHECK(args[5]->IsSmi());
438 Handle<SharedFunctionInfo> outer_info(args.at<JSFunction>(2)->shared(), 439 Handle<SharedFunctionInfo> outer_info(args.at<JSFunction>(2)->shared(),
439 isolate); 440 isolate);
440 return CompileGlobalEval(isolate, args.at<String>(1), outer_info, 441 return CompileGlobalEval(isolate, args.at<String>(1), outer_info,
441 args.at<Object>(3), language_mode, args.smi_at(5)); 442 args.at<Object>(3), language_mode, args.smi_at(5));
442 } 443 }
443 } 444 }
444 } // namespace v8::internal 445 } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/optimizing-compiler-thread.cc ('k') | src/runtime/runtime-test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698