Chromium Code Reviews| 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" |
|
Jakob Kummerow
2014/09/23 16:21:00
This shouldn't be necessary as lithium.h includes
Sven Panne
2014/09/24 06:00:19
IWYU...
|
| #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) { |