Lines Matching refs:entry

66   HValue* object_;  // The object being approximated. NULL => invalid entry.
69 State state_; // The state of this entry.
210 // Create an entry for a phi in the table.
225 HCheckTableEntry* entry = copy->Find(object);
231 if (entry == NULL) {
234 entry->maps_ = new(zone) UniqueSet<Map>(cmp->map(), zone);
235 entry->check_ = cmp;
236 entry->state_ = state;
240 if (entry != NULL) {
241 EnsureChecked(entry, object, cmp);
242 UniqueSet<Map>* maps = entry->maps_->Copy(zone);
244 entry->maps_ = maps;
245 DCHECK_NE(HCheckTableEntry::UNCHECKED_STABLE, entry->state_);
276 HCheckTableEntry* entry = copy->Find(object);
279 if (entry == NULL) {
283 EnsureChecked(entry, object, cmp);
284 entry->maps_ = entry->maps_->Intersect(string_maps(), zone);
285 DCHECK_NE(HCheckTableEntry::UNCHECKED_STABLE, entry->state_);
289 if (entry != NULL) {
290 EnsureChecked(entry, object, cmp);
291 entry->maps_ = entry->maps_->Subtract(string_maps(), zone);
292 DCHECK_NE(HCheckTableEntry::UNCHECKED_STABLE, entry->state_);
364 HCheckTableEntry* entry = Find(object);
365 if (entry != NULL) {
366 // entry found;
368 if (entry->maps_->IsSubset(instr->maps())) {
370 if (entry->check_ != NULL) {
371 DCHECK_NE(HCheckTableEntry::UNCHECKED_STABLE, entry->state_);
373 instr->id(), instr->block()->block_id(), entry->check_->id()));
374 instr->DeleteAndReplaceWith(entry->check_);
376 } else if (entry->state_ == HCheckTableEntry::UNCHECKED_STABLE) {
377 DCHECK_NULL(entry->check_);
380 instr->set_maps(entry->maps_->Copy(graph->zone()));
382 entry->state_ = HCheckTableEntry::CHECKED_STABLE;
389 entry->check_ = instr;
395 entry->maps_, graph->zone());
399 entry->object_ = NULL;
402 // Update set of maps in the entry.
403 entry->maps_ = intersection;
404 // Update state of the entry.
406 entry->state_ == HCheckTableEntry::UNCHECKED_STABLE) {
407 entry->state_ = HCheckTableEntry::CHECKED_STABLE;
411 if (entry->check_ != NULL &&
412 entry->check_->block() == instr->block() &&
413 entry->check_->IsCheckMaps()) {
416 HCheckMaps* check = HCheckMaps::cast(entry->check_);
424 instr->id(), instr->block()->block_id(), entry->check_->id()));
425 instr->DeleteAndReplaceWith(entry->check_);
430 entry->check_ = instr->IsStabilityCheck() ? NULL : instr;
440 // No entry; insert a new one.
451 HCheckTableEntry* entry = Find(value);
452 if (entry == NULL) {
459 entry->maps_->size(), zone());
460 for (int i = 0; i < entry->maps_->size(); ++i) {
462 Unique<Map> map = entry->maps_->at(i);
479 if (maps->size() == entry->maps_->size()) {
482 EnsureChecked(entry, value, instr);
486 entry->maps_ = maps;
487 if (entry->state_ == HCheckTableEntry::UNCHECKED_STABLE) {
488 entry->state_ = HCheckTableEntry::CHECKED_STABLE;
506 HCheckTableEntry* entry = Find(object);
507 if (entry == NULL || entry->maps_->size() != 1) return; // Not a constant.
509 EnsureChecked(entry, object, instr);
510 Unique<Map> map = entry->maps_->at(0);
511 bool map_is_stable = (entry->state_ != HCheckTableEntry::CHECKED);
553 HCheckTableEntry* entry = Find(instr->value()->ActualValue());
554 if (entry == NULL) return;
556 EnsureChecked(entry, instr->value(), instr);
559 if (entry->maps_->Contains(instr->map())) {
560 if (entry->maps_->size() != 1) {
608 HCheckTableEntry* entry = Find(value);
609 if (entry == NULL) return;
610 EnsureChecked(entry, value, instr);
612 if (entry->maps_->IsSubset(string_maps())) {
617 MapSet intersection = entry->maps_->Intersect(string_maps(), zone());
630 HCheckTableEntry* entry = Find(object);
632 if (entry == NULL) {
636 EnsureChecked(entry, object, instr);
637 if (entry->maps_->Contains(instr->original_map())) {
639 UniqueSet<Map>* maps = entry->maps_->Copy(zone());
643 (entry->state_ == HCheckTableEntry::CHECKED_STABLE &&
656 void EnsureChecked(HCheckTableEntry* entry,
659 if (entry->state_ != HCheckTableEntry::UNCHECKED_STABLE) return;
662 graph->zone(), value, entry->maps_->Copy(graph->zone()), true, instr);
664 entry->state_ = HCheckTableEntry::CHECKED_STABLE;
665 entry->check_ = NULL;
678 HCheckTableEntry* entry = &entries_[i];
679 DCHECK_NOT_NULL(entry->object_);
680 if (entry->state_ == HCheckTableEntry::CHECKED) {
681 entry->object_ = NULL;
685 entry->state_ = HCheckTableEntry::UNCHECKED_STABLE;
686 entry->check_ = NULL;
696 HCheckTableEntry* entry = &entries_[i];
697 DCHECK_NOT_NULL(entry->object_);
698 if (phase_->aliasing_->MayAlias(entry->object_, object)) {
699 entry->object_ = NULL;
746 HCheckTableEntry* entry = &table->entries_[i];
747 DCHECK(entry->object_ != NULL);
749 entry->object_->IsPhi() ? "phi" : "object", entry->object_->id());
750 if (entry->check_ != NULL) {
751 PrintF("check #%d ", entry->check_->id());
753 MapSet list = entry->maps_;
755 HCheckTableEntry::State2String(entry->state_));
767 HCheckTableEntry* entry = &entries_[i];
768 DCHECK(entry->object_ != NULL);
769 if (phase_->aliasing_->MustAlias(entry->object_, object)) return entry;
786 HCheckTableEntry* entry = &entries_[cursor_++];
787 entry->object_ = object;
788 entry->check_ = check;
789 entry->maps_ = maps;
790 entry->state_ = state;