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

Unified Diff: src/compiler.cc

Issue 2648503002: [Compiler] Have renumber recurse into eagerly compiled function literals. (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ast/ast-numbering.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler.cc
diff --git a/src/compiler.cc b/src/compiler.cc
index bf36da3180a314647cea89322d7c66a26177d1e6..78cdff57e501ba62aa74cbbfbe877e84d859cd73 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -455,6 +455,17 @@ CompilationJob::Status FinalizeUnoptimizedCompilationJob(CompilationJob* job) {
return status;
}
+void SetSharedFunctionFlagsFromLiteral(FunctionLiteral* literal,
+ Handle<SharedFunctionInfo> shared_info) {
+ shared_info->set_ast_node_count(literal->ast_node_count());
+ if (literal->dont_optimize_reason() != kNoReason) {
+ shared_info->DisableOptimization(literal->dont_optimize_reason());
+ }
+ if (literal->flags() & AstProperties::kMustUseIgnitionTurbo) {
+ shared_info->set_must_use_ignition_turbo(true);
+ }
+}
+
bool Renumber(Isolate* isolate, Zone* zone, FunctionLiteral* literal,
Handle<SharedFunctionInfo> shared_info,
Compiler::EagerInnerFunctionLiterals* eager_literals) {
@@ -464,14 +475,9 @@ bool Renumber(Isolate* isolate, Zone* zone, FunctionLiteral* literal,
literal, eager_literals)) {
return false;
}
+
if (!shared_info.is_null()) {
- shared_info->set_ast_node_count(literal->ast_node_count());
- if (literal->dont_optimize_reason() != kNoReason) {
- shared_info->DisableOptimization(literal->dont_optimize_reason());
- }
- if (literal->flags() & AstProperties::kMustUseIgnitionTurbo) {
- shared_info->set_must_use_ignition_turbo(true);
- }
+ SetSharedFunctionFlagsFromLiteral(literal, shared_info);
}
return true;
}
@@ -499,7 +505,7 @@ bool GenerateUnoptimizedCode(CompilationInfo* info) {
return true;
}
-bool CompileUnoptimizedInnerFunctionsRecursively(
+bool CompileUnoptimizedInnerFunctions(
ThreadedList<ThreadedListZoneEntry<FunctionLiteral*>>* literals,
CompilationInfo* outer_info) {
Isolate* isolate = outer_info->isolate();
@@ -514,14 +520,8 @@ bool CompileUnoptimizedInnerFunctionsRecursively(
Handle<SharedFunctionInfo> shared =
Compiler::GetSharedFunctionInfo(literal, script, outer_info);
if (shared->is_compiled()) continue;
- Compiler::EagerInnerFunctionLiterals inner_literals;
- if (!Renumber(isolate, outer_info->zone(), literal, shared,
- &inner_literals) ||
- !CompileUnoptimizedInnerFunctionsRecursively(&inner_literals,
- outer_info)) {
- if (!isolate->has_pending_exception()) isolate->StackOverflow();
- return false;
- }
+
+ SetSharedFunctionFlagsFromLiteral(literal, shared);
Michael Starzinger 2017/01/19 13:29:22 nit: Please add a brief comment here explaining th
rmcilroy 2017/01/19 17:24:49 Done.
// Try to enqueue the eager function on the compiler dispatcher.
CompilerDispatcher* dispatcher = isolate->compiler_dispatcher();
@@ -562,7 +562,7 @@ bool CompileUnoptimizedCode(CompilationInfo* info) {
Compiler::EagerInnerFunctionLiterals inner_literals;
if (!Compiler::Analyze(info->parse_info(), &inner_literals) ||
- !CompileUnoptimizedInnerFunctionsRecursively(&inner_literals, info) ||
+ !CompileUnoptimizedInnerFunctions(&inner_literals, info) ||
!GenerateUnoptimizedCode(info)) {
if (!isolate->has_pending_exception()) isolate->StackOverflow();
return false;
« no previous file with comments | « src/ast/ast-numbering.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698