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

Side by Side Diff: src/compiler.cc

Issue 2537103002: [Compiler] Don't mark asm-wasm functions for optimization in PostInstantiation. (Closed)
Patch Set: Remove astnumbering changes Created 4 years 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 | « no previous file | no next file » | 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 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 // free as much as possible, since some code expects the old shared function 1186 // free as much as possible, since some code expects the old shared function
1187 // infos to stick around. 1187 // infos to stick around.
1188 script->set_shared_function_infos(*old_function_infos); 1188 script->set_shared_function_infos(*old_function_infos);
1189 1189
1190 return infos; 1190 return infos;
1191 } 1191 }
1192 1192
1193 bool Compiler::EnsureBytecode(CompilationInfo* info) { 1193 bool Compiler::EnsureBytecode(CompilationInfo* info) {
1194 if (!info->shared_info()->is_compiled()) { 1194 if (!info->shared_info()->is_compiled()) {
1195 if (GetUnoptimizedCode(info).is_null()) return false; 1195 if (GetUnoptimizedCode(info).is_null()) return false;
1196 if (info->shared_info()->HasAsmWasmData()) return false;
1197 } 1196 }
1198 DCHECK(info->shared_info()->is_compiled()); 1197 DCHECK(info->shared_info()->is_compiled());
1198
1199 if (info->shared_info()->HasAsmWasmData()) return false;
1200
1199 DCHECK_EQ(ShouldUseIgnition(info), info->shared_info()->HasBytecodeArray()); 1201 DCHECK_EQ(ShouldUseIgnition(info), info->shared_info()->HasBytecodeArray());
1200 return info->shared_info()->HasBytecodeArray(); 1202 return info->shared_info()->HasBytecodeArray();
1201 } 1203 }
1202 1204
1203 // TODO(turbofan): In the future, unoptimized code with deopt support could 1205 // TODO(turbofan): In the future, unoptimized code with deopt support could
1204 // be generated lazily once deopt is triggered. 1206 // be generated lazily once deopt is triggered.
1205 bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) { 1207 bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) {
1206 DCHECK_NOT_NULL(info->literal()); 1208 DCHECK_NOT_NULL(info->literal());
1207 DCHECK_NOT_NULL(info->scope()); 1209 DCHECK_NOT_NULL(info->scope());
1208 Handle<SharedFunctionInfo> shared = info->shared_info(); 1210 Handle<SharedFunctionInfo> shared = info->shared_info();
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1704 } 1706 }
1705 return false; 1707 return false;
1706 } 1708 }
1707 } 1709 }
1708 1710
1709 void Compiler::PostInstantiation(Handle<JSFunction> function, 1711 void Compiler::PostInstantiation(Handle<JSFunction> function,
1710 PretenureFlag pretenure) { 1712 PretenureFlag pretenure) {
1711 Handle<SharedFunctionInfo> shared(function->shared()); 1713 Handle<SharedFunctionInfo> shared(function->shared());
1712 1714
1713 if (FLAG_always_opt && shared->allows_lazy_compilation() && 1715 if (FLAG_always_opt && shared->allows_lazy_compilation() &&
1716 !function->shared()->HasAsmWasmData() &&
1714 function->shared()->is_compiled()) { 1717 function->shared()->is_compiled()) {
1715 function->MarkForOptimization(); 1718 function->MarkForOptimization();
1716 } 1719 }
1717 1720
1718 CodeAndLiterals cached = shared->SearchOptimizedCodeMap( 1721 CodeAndLiterals cached = shared->SearchOptimizedCodeMap(
1719 function->context()->native_context(), BailoutId::None()); 1722 function->context()->native_context(), BailoutId::None());
1720 if (cached.code != nullptr) { 1723 if (cached.code != nullptr) {
1721 // Caching of optimized code enabled and optimized code found. 1724 // Caching of optimized code enabled and optimized code found.
1722 DCHECK(!cached.code->marked_for_deoptimization()); 1725 DCHECK(!cached.code->marked_for_deoptimization());
1723 DCHECK(function->shared()->is_compiled()); 1726 DCHECK(function->shared()->is_compiled());
1724 function->ReplaceCode(cached.code); 1727 function->ReplaceCode(cached.code);
1725 } 1728 }
1726 1729
1727 if (cached.literals != nullptr) { 1730 if (cached.literals != nullptr) {
1728 DCHECK(shared->is_compiled()); 1731 DCHECK(shared->is_compiled());
1729 function->set_literals(cached.literals); 1732 function->set_literals(cached.literals);
1730 } else if (shared->is_compiled()) { 1733 } else if (shared->is_compiled()) {
1731 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. 1734 // TODO(mvstanton): pass pretenure flag to EnsureLiterals.
1732 JSFunction::EnsureLiterals(function); 1735 JSFunction::EnsureLiterals(function);
1733 } 1736 }
1734 } 1737 }
1735 1738
1736 } // namespace internal 1739 } // namespace internal
1737 } // namespace v8 1740 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698