Index: src/lithium.cc |
diff --git a/src/lithium.cc b/src/lithium.cc |
index b29a4c590c13e49ab197a4f8c2e28c532fe33eff..655a135fed9391ed693d9e67f65e4a26c8a70d68 100644 |
--- a/src/lithium.cc |
+++ b/src/lithium.cc |
@@ -4,6 +4,7 @@ |
#include "src/v8.h" |
+#include "src/bailout-reason.h" |
#include "src/lithium.h" |
#include "src/scopes.h" |
#include "src/serialize.h" |
@@ -437,7 +438,7 @@ LChunk* LChunk::NewChunk(HGraph* graph) { |
int values = graph->GetMaximumValueID(); |
CompilationInfo* info = graph->info(); |
if (values > LUnallocated::kMaxVirtualRegisters) { |
- info->set_bailout_reason(kNotEnoughVirtualRegistersForValues); |
+ info->AbortOptimization(kNotEnoughVirtualRegistersForValues); |
return NULL; |
} |
LAllocator allocator(values, graph); |
@@ -446,7 +447,7 @@ LChunk* LChunk::NewChunk(HGraph* graph) { |
if (chunk == NULL) return NULL; |
if (!allocator.Allocate(chunk)) { |
- info->set_bailout_reason(kNotEnoughVirtualRegistersRegalloc); |
+ info->AbortOptimization(kNotEnoughVirtualRegistersRegalloc); |
return NULL; |
} |
@@ -510,6 +511,18 @@ void LChunk::set_allocated_double_registers(BitVector* allocated_registers) { |
} |
+void LChunkBuilderBase::Abort(BailoutReason reason) { |
+ info()->AbortOptimization(reason); |
+ status_ = ABORTED; |
+} |
+ |
+ |
+void LChunkBuilderBase::Retry(BailoutReason reason) { |
+ info()->RetryOptimization(reason); |
+ status_ = ABORTED; |
+} |
+ |
+ |
LEnvironment* LChunkBuilderBase::CreateEnvironment( |
HEnvironment* hydrogen_env, int* argument_index_accumulator, |
ZoneList<HValue*>* objects_to_materialize) { |