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

Side by Side Diff: src/compiler.cc

Issue 2402663002: Reland "[turbofan] Discard the shared code entry in the optimized code map." (Closed)
Patch Set: Patch failure(?) Created 4 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 | « src/builtins/x64/builtins-x64.cc ('k') | src/crankshaft/hydrogen-instructions.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/compiler.h" 5 #include "src/compiler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/asmjs/asm-js.h" 10 #include "src/asmjs/asm-js.h"
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 // from bytecode offset and overlap with actual BailoutId. No caching! 488 // from bytecode offset and overlap with actual BailoutId. No caching!
489 if (info->is_osr() && info->is_optimizing_from_bytecode()) return; 489 if (info->is_osr() && info->is_optimizing_from_bytecode()) return;
490 490
491 // Cache optimized context-specific code. 491 // Cache optimized context-specific code.
492 Handle<JSFunction> function = info->closure(); 492 Handle<JSFunction> function = info->closure();
493 Handle<SharedFunctionInfo> shared(function->shared()); 493 Handle<SharedFunctionInfo> shared(function->shared());
494 Handle<LiteralsArray> literals(function->literals()); 494 Handle<LiteralsArray> literals(function->literals());
495 Handle<Context> native_context(function->context()->native_context()); 495 Handle<Context> native_context(function->context()->native_context());
496 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code, 496 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code,
497 literals, info->osr_ast_id()); 497 literals, info->osr_ast_id());
498
499 // Do not cache (native) context-independent code compiled for OSR.
500 if (code->is_turbofanned() && info->is_osr()) return;
501
502 // Cache optimized (native) context-independent code.
503 if (FLAG_turbo_cache_shared_code && code->is_turbofanned() &&
504 !info->is_native_context_specializing()) {
505 DCHECK(!info->is_function_context_specializing());
506 DCHECK(info->osr_ast_id().IsNone());
507 Handle<SharedFunctionInfo> shared(function->shared());
508 SharedFunctionInfo::AddSharedCodeToOptimizedCodeMap(shared, code);
509 }
510 } 498 }
511 499
512 bool Renumber(ParseInfo* parse_info) { 500 bool Renumber(ParseInfo* parse_info) {
513 // Create a canonical handle scope if compiling ignition bytecode. This is 501 // Create a canonical handle scope if compiling ignition bytecode. This is
514 // required by the constant array builder to de-duplicate objects without 502 // required by the constant array builder to de-duplicate objects without
515 // dereferencing handles. 503 // dereferencing handles.
516 std::unique_ptr<CanonicalHandleScope> canonical; 504 std::unique_ptr<CanonicalHandleScope> canonical;
517 if (FLAG_ignition) { 505 if (FLAG_ignition) {
518 canonical.reset(new CanonicalHandleScope(parse_info->isolate())); 506 canonical.reset(new CanonicalHandleScope(parse_info->isolate()));
519 } 507 }
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after
1888 DCHECK(shared->is_compiled()); 1876 DCHECK(shared->is_compiled());
1889 function->set_literals(cached.literals); 1877 function->set_literals(cached.literals);
1890 } else if (shared->is_compiled()) { 1878 } else if (shared->is_compiled()) {
1891 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. 1879 // TODO(mvstanton): pass pretenure flag to EnsureLiterals.
1892 JSFunction::EnsureLiterals(function); 1880 JSFunction::EnsureLiterals(function);
1893 } 1881 }
1894 } 1882 }
1895 1883
1896 } // namespace internal 1884 } // namespace internal
1897 } // namespace v8 1885 } // namespace v8
OLDNEW
« no previous file with comments | « src/builtins/x64/builtins-x64.cc ('k') | src/crankshaft/hydrogen-instructions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698