Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index c6b911feecc8e0d48972e9a57fd046daf84e1421..5fc107f94306c062b4a0ae506e031836646ceb7e 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -106,9 +106,6 @@ void CompilationInfo::Initialize(Isolate* isolate, Mode mode, Zone* zone) { |
opt_count_ = shared_info().is_null() ? 0 : shared_info()->opt_count(); |
no_frame_ranges_ = isolate->cpu_profiler()->is_profiling() |
? new List<OffsetRange>(2) : NULL; |
- for (int i = 0; i < DependentCode::kGroupCount; i++) { |
- dependent_maps_[i] = NULL; |
- } |
if (mode == STUB) { |
mode_ = STUB; |
return; |
@@ -128,41 +125,6 @@ void CompilationInfo::Initialize(Isolate* isolate, Mode mode, Zone* zone) { |
CompilationInfo::~CompilationInfo() { |
delete deferred_handles_; |
delete no_frame_ranges_; |
-#ifdef DEBUG |
- // Check that no dependent maps have been added or added dependent maps have |
- // been rolled back or committed. |
- for (int i = 0; i < DependentCode::kGroupCount; i++) { |
- ASSERT_EQ(NULL, dependent_maps_[i]); |
- } |
-#endif // DEBUG |
-} |
- |
- |
-void CompilationInfo::CommitDependentMaps(Handle<Code> code) { |
- for (int i = 0; i < DependentCode::kGroupCount; i++) { |
- ZoneList<Handle<Map> >* group_maps = dependent_maps_[i]; |
- if (group_maps == NULL) continue; |
- ASSERT(!object_wrapper_.is_null()); |
- for (int j = 0; j < group_maps->length(); j++) { |
- group_maps->at(j)->dependent_code()->UpdateToFinishedCode( |
- static_cast<DependentCode::DependencyGroup>(i), this, *code); |
- } |
- dependent_maps_[i] = NULL; // Zone-allocated, no need to delete. |
- } |
-} |
- |
- |
-void CompilationInfo::RollbackDependentMaps() { |
- // Unregister from all dependent maps if not yet committed. |
- for (int i = 0; i < DependentCode::kGroupCount; i++) { |
- ZoneList<Handle<Map> >* group_maps = dependent_maps_[i]; |
- if (group_maps == NULL) continue; |
- for (int j = 0; j < group_maps->length(); j++) { |
- group_maps->at(j)->dependent_code()->RemoveCompilationInfo( |
- static_cast<DependentCode::DependencyGroup>(i), this); |
- } |
- dependent_maps_[i] = NULL; // Zone-allocated, no need to delete. |
- } |
} |
@@ -1020,7 +982,7 @@ void Compiler::InstallOptimizedCode(OptimizingCompiler* optimizing_compiler) { |
// The function may have already been optimized by OSR. Simply continue. |
// Except when OSR already disabled optimization for some reason. |
if (info->shared_info()->optimization_disabled()) { |
- info->AbortOptimization(); |
+ info->SetCode(Handle<Code>(info->shared_info()->code())); |
InstallFullCode(*info); |
if (FLAG_trace_parallel_recompilation) { |
PrintF(" ** aborting optimization for "); |
@@ -1038,11 +1000,9 @@ void Compiler::InstallOptimizedCode(OptimizingCompiler* optimizing_compiler) { |
// If crankshaft succeeded, install the optimized code else install |
// the unoptimized code. |
OptimizingCompiler::Status status = optimizing_compiler->last_status(); |
- if (info->HasAbortedDueToDependentMap()) { |
- info->set_bailout_reason("bailed out due to dependent map"); |
- status = optimizing_compiler->AbortOptimization(); |
- } else if (status != OptimizingCompiler::SUCCEEDED) { |
- info->set_bailout_reason("failed/bailed out last time"); |
+ if (status != OptimizingCompiler::SUCCEEDED) { |
+ optimizing_compiler->info()->set_bailout_reason( |
+ "failed/bailed out last time"); |
status = optimizing_compiler->AbortOptimization(); |
} else { |
status = optimizing_compiler->GenerateAndInstallCode(); |