From: ishell@chromium.org Date: Wed, 5 Feb 2014 15:22:54 +0000 (+0000) Subject: Fix for buildbot failure after r19102. X-Git-Tag: upstream/4.7.83~10867 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9743d254f3c9f6855d0b7843b760890197574942;p=platform%2Fupstream%2Fv8.git Fix for buildbot failure after r19102. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/149093011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/hydrogen-check-elimination.cc b/src/hydrogen-check-elimination.cc index 21bf6c9..e393234 100644 --- a/src/hydrogen-check-elimination.cc +++ b/src/hydrogen-check-elimination.cc @@ -285,7 +285,8 @@ class HCheckTable : public ZoneObject { HGraph* graph = instr->block()->graph(); HCheckMaps* new_check_maps = HCheckMaps::New(graph->zone(), NULL, instr->value(), - intersection, instr->typecheck()); + intersection, instr->typecheck(), + instr->has_migration_target()); if (entry->check_ != NULL && entry->check_->block() == instr->block()) { // There is a check in the same block so replace it with a more diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index 6e24790..c351687 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -2647,22 +2647,29 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> { public: static HCheckMaps* New(Zone* zone, HValue* context, HValue* value, Handle map, CompilationInfo* info, - HValue *typecheck = NULL); + HValue* typecheck = NULL); static HCheckMaps* New(Zone* zone, HValue* context, HValue* value, SmallMapList* maps, - HValue *typecheck = NULL) { + HValue* typecheck = NULL) { HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck); for (int i = 0; i < maps->length(); i++) { check_map->Add(maps->at(i), zone); } return check_map; } + // HCheckMaps creation method safe for using during concurrent compilation + // (does not dereference maps handles). static HCheckMaps* New(Zone* zone, HValue* context, HValue* value, UniqueSet* maps, - HValue *typecheck = NULL) { + HValue* typecheck, + bool has_migration_target) { HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck); for (int i = 0; i < maps->size(); i++) { - check_map->Add(maps->at(i).handle(), zone); + check_map->map_set_.Add(maps->at(i), zone); + } + if (has_migration_target) { + check_map->has_migration_target_ = true; + check_map->SetGVNFlag(kChangesNewSpacePromotion); } return check_map; }