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

Side by Side Diff: src/compiler.cc

Issue 1885063002: [compiler] Remove CompileEvalForDebugging pipeline. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 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 | « 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 8
9 #include "src/ast/ast-numbering.h" 9 #include "src/ast/ast-numbering.h"
10 #include "src/ast/prettyprinter.h" 10 #include "src/ast/prettyprinter.h"
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 if (GetOptimizedCode(function, Compiler::NOT_CONCURRENT) 928 if (GetOptimizedCode(function, Compiler::NOT_CONCURRENT)
929 .ToHandle(&opt_code)) { 929 .ToHandle(&opt_code)) {
930 result = opt_code; 930 result = opt_code;
931 } 931 }
932 } 932 }
933 933
934 return result; 934 return result;
935 } 935 }
936 936
937 937
938 bool CompileEvalForDebugging(Handle<JSFunction> function,
939 Handle<SharedFunctionInfo> shared) {
940 Handle<Script> script(Script::cast(shared->script()));
941 Handle<Context> context(function->context());
942
943 Zone zone(function->GetIsolate()->allocator());
944 ParseInfo parse_info(&zone, script);
945 CompilationInfo info(&parse_info, Handle<JSFunction>::null());
946 Isolate* isolate = info.isolate();
947
948 parse_info.set_eval();
949 parse_info.set_context(context);
950 if (context->IsNativeContext()) parse_info.set_global();
951 parse_info.set_toplevel();
952 parse_info.set_allow_lazy_parsing(false);
953 parse_info.set_language_mode(shared->language_mode());
954 parse_info.set_parse_restriction(NO_PARSE_RESTRICTION);
955 info.MarkAsDebug();
956
957 VMState<COMPILER> state(info.isolate());
958
959 if (!Parser::ParseStatic(&parse_info)) {
960 isolate->clear_pending_exception();
961 return false;
962 }
963
964 FunctionLiteral* lit = parse_info.literal();
965 LiveEditFunctionTracker live_edit_tracker(isolate, lit);
966
967 if (!CompileUnoptimizedCode(&info)) {
968 isolate->clear_pending_exception();
969 return false;
970 }
971 shared->ReplaceCode(*info.code());
972 return true;
973 }
974
975
976 bool CompileForDebugging(CompilationInfo* info) { 938 bool CompileForDebugging(CompilationInfo* info) {
977 info->MarkAsDebug(); 939 info->MarkAsDebug();
978 if (GetUnoptimizedCode(info).is_null()) { 940 if (GetUnoptimizedCode(info).is_null()) {
979 info->isolate()->clear_pending_exception(); 941 info->isolate()->clear_pending_exception();
980 return false; 942 return false;
981 } 943 }
982 return true; 944 return true;
983 } 945 }
984 946
985 inline bool IsEvalToplevel(Handle<SharedFunctionInfo> shared) { 947 inline bool IsEvalToplevel(Handle<SharedFunctionInfo> shared) {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1179 function->code()->kind() == Code::OPTIMIZED_FUNCTION || 1141 function->code()->kind() == Code::OPTIMIZED_FUNCTION ||
1180 (function->code()->is_interpreter_entry_trampoline() && 1142 (function->code()->is_interpreter_entry_trampoline() &&
1181 function->shared()->HasBytecodeArray()) || 1143 function->shared()->HasBytecodeArray()) ||
1182 function->IsInOptimizationQueue()); 1144 function->IsInOptimizationQueue());
1183 return true; 1145 return true;
1184 } 1146 }
1185 1147
1186 bool Compiler::CompileDebugCode(Handle<JSFunction> function) { 1148 bool Compiler::CompileDebugCode(Handle<JSFunction> function) {
1187 Handle<SharedFunctionInfo> shared(function->shared()); 1149 Handle<SharedFunctionInfo> shared(function->shared());
1188 if (IsEvalToplevel(shared)) { 1150 if (IsEvalToplevel(shared)) {
1189 return CompileEvalForDebugging(function, shared); 1151 Handle<Script> script(Script::cast(shared->script()));
1152 Handle<Context> context(function->context());
1153
1154 Zone zone(function->GetIsolate()->allocator());
1155 ParseInfo parse_info(&zone, script);
1156 CompilationInfo info(&parse_info, Handle<JSFunction>::null());
1157
1158 parse_info.set_eval();
1159 parse_info.set_context(context);
1160 parse_info.set_shared_info(shared);
1161 if (context->IsNativeContext()) parse_info.set_global();
1162 parse_info.set_toplevel();
1163 parse_info.set_allow_lazy_parsing(false);
1164 parse_info.set_language_mode(shared->language_mode());
1165 parse_info.set_parse_restriction(NO_PARSE_RESTRICTION);
1166 return CompileForDebugging(&info);
1190 } else { 1167 } else {
1191 CompilationInfoWithZone info(function); 1168 CompilationInfoWithZone info(function);
1192 return CompileForDebugging(&info); 1169 return CompileForDebugging(&info);
1193 } 1170 }
1194 } 1171 }
1195 1172
1196 bool Compiler::CompileDebugCode(Handle<SharedFunctionInfo> shared) { 1173 bool Compiler::CompileDebugCode(Handle<SharedFunctionInfo> shared) {
1197 DCHECK(shared->allows_lazy_compilation_without_context()); 1174 DCHECK(shared->allows_lazy_compilation_without_context());
1198 DCHECK(!IsEvalToplevel(shared)); 1175 DCHECK(!IsEvalToplevel(shared));
1199 Zone zone(shared->GetIsolate()->allocator()); 1176 Zone zone(shared->GetIsolate()->allocator());
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 MaybeHandle<Code> code; 1691 MaybeHandle<Code> code;
1715 if (cached.code != nullptr) code = handle(cached.code); 1692 if (cached.code != nullptr) code = handle(cached.code);
1716 Handle<Context> native_context(function->context()->native_context()); 1693 Handle<Context> native_context(function->context()->native_context());
1717 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code, 1694 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code,
1718 literals, BailoutId::None()); 1695 literals, BailoutId::None());
1719 } 1696 }
1720 } 1697 }
1721 1698
1722 } // namespace internal 1699 } // namespace internal
1723 } // namespace v8 1700 } // 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