Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index de068094de98089bd780dd06a92c648001ac6561..c2f3951494e647936183cdb1d25659c8d5ee187f 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -75,6 +75,11 @@ HBasicBlock::HBasicBlock(HGraph* graph) |
is_osr_entry_(false) { } |
+Isolate* HBasicBlock::isolate() const { |
+ return graph_->isolate(); |
+} |
+ |
+ |
void HBasicBlock::AttachLoopInformation() { |
ASSERT(!IsLoopHeader()); |
loop_information_ = new(zone()) HLoopInformation(this, zone()); |
@@ -829,8 +834,8 @@ void HGraphBuilder::LoopBuilder::EndBody() { |
HGraph* HGraphBuilder::CreateGraph() { |
graph_ = new(zone()) HGraph(info_); |
- if (FLAG_hydrogen_stats) HStatistics::Instance()->Initialize(info_); |
- HPhase phase("H_Block building", graph()->isolate()); |
+ if (FLAG_hydrogen_stats) isolate()->GetHStatistics()->Initialize(info_); |
+ HPhase phase("H_Block building", isolate()); |
set_current_block(graph()->entry_block()); |
if (!BuildGraph()) return NULL; |
return graph_; |
@@ -1001,7 +1006,7 @@ HInstruction* HGraphBuilder::BuildUncheckedMonomorphicElementAccess( |
AddInstruction(new(zone) HLoadElements(object, mapcheck)); |
if (is_store && (fast_elements || fast_smi_only_elements)) { |
HCheckMaps* check_cow_map = new(zone) HCheckMaps( |
- elements, graph()->isolate()->factory()->fixed_array_map(), zone); |
+ elements, isolate()->factory()->fixed_array_map(), zone); |
check_cow_map->ClearGVNFlag(kDependsOnElementsKind); |
AddInstruction(check_cow_map); |
} |
@@ -1066,16 +1071,14 @@ HValue* HGraphBuilder::BuildAllocateElements(HContext* context, |
HValue* elements = |
AddInstruction(new(zone) HAllocate(context, total_size, |
HType::JSArray(), flags)); |
- Isolate* isolate = graph()->isolate(); |
- Factory* factory = isolate->factory(); |
+ Factory* factory = isolate()->factory(); |
Handle<Map> map = IsFastDoubleElementsKind(kind) |
? factory->fixed_double_array_map() |
: factory->fixed_array_map(); |
BuildStoreMap(elements, map, BailoutId::StubEntry()); |
- Handle<String> fixed_array_length_field_name = |
- isolate->factory()->length_field_string(); |
+ Handle<String> fixed_array_length_field_name = factory->length_field_string(); |
HInstruction* store_length = |
new(zone) HStoreNamedField(elements, fixed_array_length_field_name, |
capacity, true, FixedArray::kLengthOffset); |
@@ -1090,8 +1093,7 @@ HInstruction* HGraphBuilder::BuildStoreMap(HValue* object, |
HValue* map, |
BailoutId id) { |
Zone* zone = this->zone(); |
- Isolate* isolate = graph()->isolate(); |
- Factory* factory = isolate->factory(); |
+ Factory* factory = isolate()->factory(); |
Handle<String> map_field_name = factory->map_field_string(); |
HInstruction* store_map = |
new(zone) HStoreNamedField(object, map_field_name, map, |
@@ -9380,7 +9382,7 @@ void HOptimizedGraphBuilder::VisitCompareOperation(CompareOperation* expr) { |
return HandleLiteralCompareTypeof(expr, typeof_expr, check); |
} |
HValue* sub_expr = NULL; |
- Factory* f = graph()->isolate()->factory(); |
+ Factory* f = isolate()->factory(); |
if (IsLiteralCompareNil(left, op, right, f->undefined_value(), &sub_expr)) { |
return HandleLiteralCompareNil(expr, sub_expr, kUndefinedValue); |
} |
@@ -10511,7 +10513,7 @@ void HTracer::TraceCompilation(CompilationInfo* info) { |
void HTracer::TraceLithium(const char* name, LChunk* chunk) { |
- AllowHandleDereference allow_handle_deref(chunk->graph()->isolate()); |
+ AllowHandleDereference allow_handle_deref(chunk->isolate()); |
Trace(name, chunk->graph(), chunk); |
} |
@@ -10810,12 +10812,12 @@ HPhase::HPhase(const char* name, HGraph* graph) { |
HPhase::HPhase(const char* name, LChunk* chunk) { |
- Init(chunk->graph()->isolate(), name, NULL, chunk, NULL); |
+ Init(chunk->isolate(), name, NULL, chunk, NULL); |
} |
HPhase::HPhase(const char* name, LAllocator* allocator) { |
- Init(allocator->graph()->isolate(), name, NULL, NULL, allocator); |
+ Init(allocator->isolate(), name, NULL, NULL, allocator); |
} |
@@ -10843,7 +10845,7 @@ HPhase::~HPhase() { |
if (FLAG_hydrogen_stats) { |
int64_t ticks = OS::Ticks() - start_ticks_; |
unsigned size = Zone::allocation_size_ - start_allocation_size_; |
- HStatistics::Instance()->SaveTiming(name_, ticks, size); |
+ isolate_->GetHStatistics()->SaveTiming(name_, ticks, size); |
} |
// Produce trace output if flag is set so that the first letter of the |