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

Side by Side Diff: src/compiler.cc

Issue 2301743002: [Tracing] Re-add trace-events used by metrics accidentally removed. (Closed)
Patch Set: Created 4 years, 3 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 | « no previous file | src/deoptimizer.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 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 718 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 if (!info->is_optimizing_from_bytecode()) { 729 if (!info->is_optimizing_from_bytecode()) {
730 if (!Compiler::ParseAndAnalyze(info->parse_info())) return false; 730 if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
731 EnsureFeedbackMetadata(info); 731 EnsureFeedbackMetadata(info);
732 } 732 }
733 733
734 JSFunction::EnsureLiterals(info->closure()); 734 JSFunction::EnsureLiterals(info->closure());
735 735
736 TimerEventScope<TimerEventRecompileSynchronous> timer(isolate); 736 TimerEventScope<TimerEventRecompileSynchronous> timer(isolate);
737 RuntimeCallTimerScope runtimeTimer(isolate, 737 RuntimeCallTimerScope runtimeTimer(isolate,
738 &RuntimeCallStats::RecompileSynchronous); 738 &RuntimeCallStats::RecompileSynchronous);
739 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
740 "V8.RecompileSynchronous");
739 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 741 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
740 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous); 742 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous);
741 743
742 if (job->PrepareJob() != CompilationJob::SUCCEEDED || 744 if (job->PrepareJob() != CompilationJob::SUCCEEDED ||
743 job->ExecuteJob() != CompilationJob::SUCCEEDED || 745 job->ExecuteJob() != CompilationJob::SUCCEEDED ||
744 job->FinalizeJob() != CompilationJob::SUCCEEDED) { 746 job->FinalizeJob() != CompilationJob::SUCCEEDED) {
745 if (FLAG_trace_opt) { 747 if (FLAG_trace_opt) {
746 PrintF("[aborted optimizing "); 748 PrintF("[aborted optimizing ");
747 info->closure()->ShortPrint(); 749 info->closure()->ShortPrint();
748 PrintF(" because: %s]\n", GetBailoutReason(info->bailout_reason())); 750 PrintF(" because: %s]\n", GetBailoutReason(info->bailout_reason()));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 if (!info->is_optimizing_from_bytecode()) { 786 if (!info->is_optimizing_from_bytecode()) {
785 if (!Compiler::ParseAndAnalyze(info->parse_info())) return false; 787 if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
786 EnsureFeedbackMetadata(info); 788 EnsureFeedbackMetadata(info);
787 } 789 }
788 790
789 JSFunction::EnsureLiterals(info->closure()); 791 JSFunction::EnsureLiterals(info->closure());
790 792
791 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate()); 793 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
792 RuntimeCallTimerScope runtimeTimer(info->isolate(), 794 RuntimeCallTimerScope runtimeTimer(info->isolate(),
793 &RuntimeCallStats::RecompileSynchronous); 795 &RuntimeCallStats::RecompileSynchronous);
796 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
797 "V8.RecompileSynchronous");
794 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 798 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
795 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous); 799 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous);
796 800
797 if (job->PrepareJob() != CompilationJob::SUCCEEDED) return false; 801 if (job->PrepareJob() != CompilationJob::SUCCEEDED) return false;
798 isolate->optimizing_compile_dispatcher()->QueueForOptimization(job); 802 isolate->optimizing_compile_dispatcher()->QueueForOptimization(job);
799 803
800 if (FLAG_trace_concurrent_recompilation) { 804 if (FLAG_trace_concurrent_recompilation) {
801 PrintF(" ** Queued "); 805 PrintF(" ** Queued ");
802 info->closure()->ShortPrint(); 806 info->closure()->ShortPrint();
803 PrintF(" for concurrent optimization.\n"); 807 PrintF(" for concurrent optimization.\n");
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 // Limit the number of times we try to optimize functions. 866 // Limit the number of times we try to optimize functions.
863 const int kMaxOptCount = 867 const int kMaxOptCount =
864 FLAG_deopt_every_n_times == 0 ? FLAG_max_opt_count : 1000; 868 FLAG_deopt_every_n_times == 0 ? FLAG_max_opt_count : 1000;
865 if (info->shared_info()->opt_count() > kMaxOptCount) { 869 if (info->shared_info()->opt_count() > kMaxOptCount) {
866 info->AbortOptimization(kOptimizedTooManyTimes); 870 info->AbortOptimization(kOptimizedTooManyTimes);
867 return MaybeHandle<Code>(); 871 return MaybeHandle<Code>();
868 } 872 }
869 873
870 TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate); 874 TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate);
871 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::OptimizeCode); 875 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::OptimizeCode);
876 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.OptimizeCode");
872 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 877 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
873 isolate, &tracing::TraceEventStatsTable::OptimizeCode); 878 isolate, &tracing::TraceEventStatsTable::OptimizeCode);
874 879
875 // TurboFan can optimize directly from existing bytecode. 880 // TurboFan can optimize directly from existing bytecode.
876 if (FLAG_turbo_from_bytecode && use_turbofan && ShouldUseIgnition(info)) { 881 if (FLAG_turbo_from_bytecode && use_turbofan && ShouldUseIgnition(info)) {
877 if (!Compiler::EnsureBytecode(info)) { 882 if (!Compiler::EnsureBytecode(info)) {
878 if (isolate->has_pending_exception()) isolate->clear_pending_exception(); 883 if (isolate->has_pending_exception()) isolate->clear_pending_exception();
879 return MaybeHandle<Code>(); 884 return MaybeHandle<Code>();
880 } 885 }
881 info->MarkAsOptimizeFromBytecode(); 886 info->MarkAsOptimizeFromBytecode();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
918 return MaybeHandle<Code>(); 923 return MaybeHandle<Code>();
919 } 924 }
920 925
921 CompilationJob::Status FinalizeOptimizedCompilationJob(CompilationJob* job) { 926 CompilationJob::Status FinalizeOptimizedCompilationJob(CompilationJob* job) {
922 CompilationInfo* info = job->info(); 927 CompilationInfo* info = job->info();
923 Isolate* isolate = info->isolate(); 928 Isolate* isolate = info->isolate();
924 929
925 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate()); 930 TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
926 RuntimeCallTimerScope runtimeTimer(isolate, 931 RuntimeCallTimerScope runtimeTimer(isolate,
927 &RuntimeCallStats::RecompileSynchronous); 932 &RuntimeCallStats::RecompileSynchronous);
933 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
934 "V8.RecompileSynchronous");
928 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 935 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
929 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous); 936 isolate, &tracing::TraceEventStatsTable::RecompileSynchronous);
930 937
931 Handle<SharedFunctionInfo> shared = info->shared_info(); 938 Handle<SharedFunctionInfo> shared = info->shared_info();
932 shared->code()->set_profiler_ticks(0); 939 shared->code()->set_profiler_ticks(0);
933 940
934 DCHECK(!shared->HasDebugInfo()); 941 DCHECK(!shared->HasDebugInfo());
935 942
936 // 1) Optimization on the concurrent thread may have failed. 943 // 1) Optimization on the concurrent thread may have failed.
937 // 2) The function may have already been optimized by OSR. Simply continue. 944 // 2) The function may have already been optimized by OSR. Simply continue.
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 return info.code(); 1142 return info.code();
1136 } 1143 }
1137 1144
1138 MaybeHandle<Code> GetLazyCode(Handle<JSFunction> function) { 1145 MaybeHandle<Code> GetLazyCode(Handle<JSFunction> function) {
1139 Isolate* isolate = function->GetIsolate(); 1146 Isolate* isolate = function->GetIsolate();
1140 DCHECK(!isolate->has_pending_exception()); 1147 DCHECK(!isolate->has_pending_exception());
1141 DCHECK(!function->is_compiled()); 1148 DCHECK(!function->is_compiled());
1142 TimerEventScope<TimerEventCompileCode> compile_timer(isolate); 1149 TimerEventScope<TimerEventCompileCode> compile_timer(isolate);
1143 RuntimeCallTimerScope runtimeTimer(isolate, 1150 RuntimeCallTimerScope runtimeTimer(isolate,
1144 &RuntimeCallStats::CompileCodeLazy); 1151 &RuntimeCallStats::CompileCodeLazy);
1152 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileCode");
1145 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1153 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1146 isolate, &tracing::TraceEventStatsTable::CompileCodeLazy); 1154 isolate, &tracing::TraceEventStatsTable::CompileCodeLazy);
1147 AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy()); 1155 AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy());
1148 1156
1149 if (FLAG_turbo_cache_shared_code) { 1157 if (FLAG_turbo_cache_shared_code) {
1150 Handle<Code> cached_code; 1158 Handle<Code> cached_code;
1151 if (GetCodeFromOptimizedCodeMap(function, BailoutId::None()) 1159 if (GetCodeFromOptimizedCodeMap(function, BailoutId::None())
1152 .ToHandle(&cached_code)) { 1160 .ToHandle(&cached_code)) {
1153 if (FLAG_trace_opt) { 1161 if (FLAG_trace_opt) {
1154 PrintF("[found optimized code for "); 1162 PrintF("[found optimized code for ");
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 code, scope_info); 1205 code, scope_info);
1198 SharedFunctionInfo::InitFromFunctionLiteral(result, literal); 1206 SharedFunctionInfo::InitFromFunctionLiteral(result, literal);
1199 SharedFunctionInfo::SetScript(result, script); 1207 SharedFunctionInfo::SetScript(result, script);
1200 return result; 1208 return result;
1201 } 1209 }
1202 1210
1203 Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) { 1211 Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
1204 Isolate* isolate = info->isolate(); 1212 Isolate* isolate = info->isolate();
1205 TimerEventScope<TimerEventCompileCode> timer(isolate); 1213 TimerEventScope<TimerEventCompileCode> timer(isolate);
1206 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode); 1214 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode);
1215 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileCode");
1207 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1216 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1208 isolate, &tracing::TraceEventStatsTable::CompileCode); 1217 isolate, &tracing::TraceEventStatsTable::CompileCode);
1209 PostponeInterruptsScope postpone(isolate); 1218 PostponeInterruptsScope postpone(isolate);
1210 DCHECK(!isolate->native_context().is_null()); 1219 DCHECK(!isolate->native_context().is_null());
1211 ParseInfo* parse_info = info->parse_info(); 1220 ParseInfo* parse_info = info->parse_info();
1212 Handle<Script> script = parse_info->script(); 1221 Handle<Script> script = parse_info->script();
1213 1222
1214 // Create a canonical handle scope before internalizing parsed values if 1223 // Create a canonical handle scope before internalizing parsed values if
1215 // compiling bytecode. This is required for off-thread bytecode generation. 1224 // compiling bytecode. This is required for off-thread bytecode generation.
1216 std::unique_ptr<CanonicalHandleScope> canonical; 1225 std::unique_ptr<CanonicalHandleScope> canonical;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 // Measure how long it takes to do the compilation; only take the 1280 // Measure how long it takes to do the compilation; only take the
1272 // rest of the function into account to avoid overlap with the 1281 // rest of the function into account to avoid overlap with the
1273 // parsing statistics. 1282 // parsing statistics.
1274 RuntimeCallTimerScope runtimeTimer( 1283 RuntimeCallTimerScope runtimeTimer(
1275 isolate, parse_info->is_eval() ? &RuntimeCallStats::CompileEval 1284 isolate, parse_info->is_eval() ? &RuntimeCallStats::CompileEval
1276 : &RuntimeCallStats::Compile); 1285 : &RuntimeCallStats::Compile);
1277 HistogramTimer* rate = parse_info->is_eval() 1286 HistogramTimer* rate = parse_info->is_eval()
1278 ? info->isolate()->counters()->compile_eval() 1287 ? info->isolate()->counters()->compile_eval()
1279 : info->isolate()->counters()->compile(); 1288 : info->isolate()->counters()->compile();
1280 HistogramTimerScope timer(rate); 1289 HistogramTimerScope timer(rate);
1290 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
1291 parse_info->is_eval() ? "V8.CompileEval" : "V8.Compile");
1281 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1292 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1282 isolate, 1293 isolate,
1283 (parse_info->is_eval() ? &tracing::TraceEventStatsTable::CompileEval 1294 (parse_info->is_eval() ? &tracing::TraceEventStatsTable::CompileEval
1284 : &tracing::TraceEventStatsTable::Compile)); 1295 : &tracing::TraceEventStatsTable::Compile));
1285 1296
1286 // Allocate a shared function info object. 1297 // Allocate a shared function info object.
1287 DCHECK_EQ(kNoSourcePosition, lit->function_token_position()); 1298 DCHECK_EQ(kNoSourcePosition, lit->function_token_position());
1288 result = NewSharedFunctionInfoForLiteral(isolate, lit, script); 1299 result = NewSharedFunctionInfoForLiteral(isolate, lit, script);
1289 result->set_is_toplevel(true); 1300 result->set_is_toplevel(true);
1290 if (parse_info->is_eval()) { 1301 if (parse_info->is_eval()) {
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
1757 maybe_result = compilation_cache->LookupScript( 1768 maybe_result = compilation_cache->LookupScript(
1758 source, script_name, line_offset, column_offset, resource_options, 1769 source, script_name, line_offset, column_offset, resource_options,
1759 context, language_mode); 1770 context, language_mode);
1760 if (maybe_result.is_null() && FLAG_serialize_toplevel && 1771 if (maybe_result.is_null() && FLAG_serialize_toplevel &&
1761 compile_options == ScriptCompiler::kConsumeCodeCache && 1772 compile_options == ScriptCompiler::kConsumeCodeCache &&
1762 !isolate->debug()->is_loaded()) { 1773 !isolate->debug()->is_loaded()) {
1763 // Then check cached code provided by embedder. 1774 // Then check cached code provided by embedder.
1764 HistogramTimerScope timer(isolate->counters()->compile_deserialize()); 1775 HistogramTimerScope timer(isolate->counters()->compile_deserialize());
1765 RuntimeCallTimerScope runtimeTimer(isolate, 1776 RuntimeCallTimerScope runtimeTimer(isolate,
1766 &RuntimeCallStats::CompileDeserialize); 1777 &RuntimeCallStats::CompileDeserialize);
1778 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
1779 "V8.CompileDeserialize");
1767 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1780 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1768 isolate, &tracing::TraceEventStatsTable::CompileDeserialize); 1781 isolate, &tracing::TraceEventStatsTable::CompileDeserialize);
1769 Handle<SharedFunctionInfo> result; 1782 Handle<SharedFunctionInfo> result;
1770 if (CodeSerializer::Deserialize(isolate, *cached_data, source) 1783 if (CodeSerializer::Deserialize(isolate, *cached_data, source)
1771 .ToHandle(&result)) { 1784 .ToHandle(&result)) {
1772 // Promote to per-isolate compilation cache. 1785 // Promote to per-isolate compilation cache.
1773 compilation_cache->PutScript(source, context, language_mode, result); 1786 compilation_cache->PutScript(source, context, language_mode, result);
1774 return result; 1787 return result;
1775 } 1788 }
1776 // Deserializer failed. Fall through to compile. 1789 // Deserializer failed. Fall through to compile.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1831 static_cast<LanguageMode>(parse_info.language_mode() | language_mode)); 1844 static_cast<LanguageMode>(parse_info.language_mode() | language_mode));
1832 result = CompileToplevel(&info); 1845 result = CompileToplevel(&info);
1833 if (extension == NULL && !result.is_null()) { 1846 if (extension == NULL && !result.is_null()) {
1834 compilation_cache->PutScript(source, context, language_mode, result); 1847 compilation_cache->PutScript(source, context, language_mode, result);
1835 if (FLAG_serialize_toplevel && 1848 if (FLAG_serialize_toplevel &&
1836 compile_options == ScriptCompiler::kProduceCodeCache) { 1849 compile_options == ScriptCompiler::kProduceCodeCache) {
1837 HistogramTimerScope histogram_timer( 1850 HistogramTimerScope histogram_timer(
1838 isolate->counters()->compile_serialize()); 1851 isolate->counters()->compile_serialize());
1839 RuntimeCallTimerScope runtimeTimer(isolate, 1852 RuntimeCallTimerScope runtimeTimer(isolate,
1840 &RuntimeCallStats::CompileSerialize); 1853 &RuntimeCallStats::CompileSerialize);
1854 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"),
1855 "V8.CompileSerialize");
1841 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1856 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1842 isolate, &tracing::TraceEventStatsTable::CompileSerialize); 1857 isolate, &tracing::TraceEventStatsTable::CompileSerialize);
1843 *cached_data = CodeSerializer::Serialize(isolate, result, source); 1858 *cached_data = CodeSerializer::Serialize(isolate, result, source);
1844 if (FLAG_profile_deserialization) { 1859 if (FLAG_profile_deserialization) {
1845 PrintF("[Compiling and serializing took %0.3f ms]\n", 1860 PrintF("[Compiling and serializing took %0.3f ms]\n",
1846 timer.Elapsed().InMillisecondsF()); 1861 timer.Elapsed().InMillisecondsF());
1847 } 1862 }
1848 } 1863 }
1849 } 1864 }
1850 1865
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1950 // Consider compiling eagerly when targeting the code cache. 1965 // Consider compiling eagerly when targeting the code cache.
1951 lazy &= !(FLAG_serialize_eager && info.will_serialize()); 1966 lazy &= !(FLAG_serialize_eager && info.will_serialize());
1952 1967
1953 // Consider compiling eagerly when compiling bytecode for Ignition. 1968 // Consider compiling eagerly when compiling bytecode for Ignition.
1954 lazy &= 1969 lazy &=
1955 !(FLAG_ignition && FLAG_ignition_eager && !isolate->serializer_enabled()); 1970 !(FLAG_ignition && FLAG_ignition_eager && !isolate->serializer_enabled());
1956 1971
1957 // Generate code 1972 // Generate code
1958 TimerEventScope<TimerEventCompileCode> timer(isolate); 1973 TimerEventScope<TimerEventCompileCode> timer(isolate);
1959 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode); 1974 RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode);
1975 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.CompileCode");
1960 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( 1976 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1961 isolate, &tracing::TraceEventStatsTable::CompileCode); 1977 isolate, &tracing::TraceEventStatsTable::CompileCode);
1962 1978
1963 // Create a canonical handle scope if compiling ignition bytecode. This is 1979 // Create a canonical handle scope if compiling ignition bytecode. This is
1964 // required by the constant array builder to de-duplicate common objects 1980 // required by the constant array builder to de-duplicate common objects
1965 // without dereferencing handles. 1981 // without dereferencing handles.
1966 std::unique_ptr<CanonicalHandleScope> canonical; 1982 std::unique_ptr<CanonicalHandleScope> canonical;
1967 if (FLAG_ignition) canonical.reset(new CanonicalHandleScope(info.isolate())); 1983 if (FLAG_ignition) canonical.reset(new CanonicalHandleScope(info.isolate()));
1968 1984
1969 if (lazy) { 1985 if (lazy) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2075 DCHECK(shared->is_compiled()); 2091 DCHECK(shared->is_compiled());
2076 function->set_literals(cached.literals); 2092 function->set_literals(cached.literals);
2077 } else if (shared->is_compiled()) { 2093 } else if (shared->is_compiled()) {
2078 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. 2094 // TODO(mvstanton): pass pretenure flag to EnsureLiterals.
2079 JSFunction::EnsureLiterals(function); 2095 JSFunction::EnsureLiterals(function);
2080 } 2096 }
2081 } 2097 }
2082 2098
2083 } // namespace internal 2099 } // namespace internal
2084 } // namespace v8 2100 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698