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

Side by Side Diff: src/compiler.cc

Issue 976623002: Serializer: correctly deal with internal references. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixed ports, disabled context specialization for serializer Created 5 years, 9 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
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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/compiler.h" 7 #include "src/compiler.h"
8 8
9 #include "src/ast-numbering.h" 9 #include "src/ast-numbering.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 if ((FLAG_turbo_asm && info()->shared_info()->asm_function()) || 503 if ((FLAG_turbo_asm && info()->shared_info()->asm_function()) ||
504 info()->closure()->PassesFilter(FLAG_turbo_filter)) { 504 info()->closure()->PassesFilter(FLAG_turbo_filter)) {
505 if (FLAG_trace_opt) { 505 if (FLAG_trace_opt) {
506 OFStream os(stdout); 506 OFStream os(stdout);
507 os << "[compiling method " << Brief(*info()->closure()) 507 os << "[compiling method " << Brief(*info()->closure())
508 << " using TurboFan"; 508 << " using TurboFan";
509 if (info()->is_osr()) os << " OSR"; 509 if (info()->is_osr()) os << " OSR";
510 os << "]" << std::endl; 510 os << "]" << std::endl;
511 } 511 }
512 512
513 if (info()->shared_info()->asm_function()) { 513 // Do not enable context specialization if the code is intended to be
514 // included in a start-up snapshot.
515 if (info()->shared_info()->asm_function() &&
516 !isolate()->serializer_enabled()) {
Michael Starzinger 2015/03/04 13:43:50 As discussed offline: Instead of narrowing the int
514 info()->MarkAsContextSpecializing(); 517 info()->MarkAsContextSpecializing();
515 } 518 }
516 519
517 Timer t(this, &time_taken_to_create_graph_); 520 Timer t(this, &time_taken_to_create_graph_);
518 compiler::Pipeline pipeline(info()); 521 compiler::Pipeline pipeline(info());
519 pipeline.GenerateCode(); 522 pipeline.GenerateCode();
520 if (!info()->code().is_null()) { 523 if (!info()->code().is_null()) {
521 return SetLastStatus(SUCCEEDED); 524 return SetLastStatus(SUCCEEDED);
522 } 525 }
523 } 526 }
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 // deopt from turbofan code. 943 // deopt from turbofan code.
941 if (FLAG_turbo_asm && function->shared()->asm_function() && 944 if (FLAG_turbo_asm && function->shared()->asm_function() &&
942 (FLAG_turbo_deoptimization || !isolate->debug()->is_active()) && 945 (FLAG_turbo_deoptimization || !isolate->debug()->is_active()) &&
943 !FLAG_turbo_osr) { 946 !FLAG_turbo_osr) {
944 CompilationInfoWithZone info(function); 947 CompilationInfoWithZone info(function);
945 948
946 VMState<COMPILER> state(isolate); 949 VMState<COMPILER> state(isolate);
947 PostponeInterruptsScope postpone(isolate); 950 PostponeInterruptsScope postpone(isolate);
948 951
949 info.SetOptimizing(BailoutId::None(), handle(function->shared()->code())); 952 info.SetOptimizing(BailoutId::None(), handle(function->shared()->code()));
950 info.MarkAsContextSpecializing(); 953
954 // Do not enable context specialization if the code is intended to be
955 // included in a start-up snapshot.
956 if (!isolate->serializer_enabled()) info.MarkAsContextSpecializing();
951 957
952 if (GetOptimizedCodeNow(&info)) { 958 if (GetOptimizedCodeNow(&info)) {
953 DCHECK(function->shared()->is_compiled()); 959 DCHECK(function->shared()->is_compiled());
954 return info.code(); 960 return info.code();
955 } 961 }
956 // We have failed compilation. If there was an exception clear it so that 962 // We have failed compilation. If there was an exception clear it so that
957 // we can compile unoptimized code. 963 // we can compile unoptimized code.
958 if (isolate->has_pending_exception()) isolate->clear_pending_exception(); 964 if (isolate->has_pending_exception()) isolate->clear_pending_exception();
959 } 965 }
960 966
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1609 } 1615 }
1610 1616
1611 1617
1612 #if DEBUG 1618 #if DEBUG
1613 void CompilationInfo::PrintAstForTesting() { 1619 void CompilationInfo::PrintAstForTesting() {
1614 PrintF("--- Source from AST ---\n%s\n", 1620 PrintF("--- Source from AST ---\n%s\n",
1615 PrettyPrinter(isolate(), zone()).PrintProgram(function())); 1621 PrettyPrinter(isolate(), zone()).PrintProgram(function()));
1616 } 1622 }
1617 #endif 1623 #endif
1618 } } // namespace v8::internal 1624 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/assembler.cc ('k') | src/disassembler.cc » ('j') | test/cctest/test-serialize.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698