• Home
  • Raw
  • Download

Lines Matching refs:idx

550   PhiPlaceholder GetPhiPlaceholder(uint32_t block_id, size_t idx) const {  in GetPhiPlaceholder()
552 return PhiPlaceholder(block_id, idx); in GetPhiPlaceholder()
771 Value PrepareLoopValue(HBasicBlock* block, size_t idx);
772 Value PrepareLoopStoredBy(HBasicBlock* block, size_t idx);
774 Value MergePredecessorValues(HBasicBlock* block, size_t idx);
779 void VisitGetLocation(HInstruction* instruction, size_t idx);
780 void VisitSetLocation(HInstruction* instruction, size_t idx, HInstruction* value);
893 size_t idx = heap_location_collector_.GetFieldHeapLocation(object, &field); in VisitInstanceFieldSet() local
894 VisitSetLocation(instruction, idx, value); in VisitInstanceFieldSet()
917 size_t idx = heap_location_collector_.GetFieldHeapLocation(cls, &field); in VisitStaticFieldSet() local
918 VisitSetLocation(instruction, idx, value); in VisitStaticFieldSet()
950 size_t idx = heap_location_collector_.GetArrayHeapLocation(instruction); in VisitArraySet() local
951 VisitSetLocation(instruction, idx, instruction->GetValue()); in VisitArraySet()
961 size_t idx = heap_location_collector_.GetArrayHeapLocation(instruction); in VisitVecStore() local
962 VisitSetLocation(instruction, idx, instruction->GetValue()); in VisitVecStore()
1449 LSEVisitor::Value LSEVisitor::PrepareLoopValue(HBasicBlock* block, size_t idx) { in PrepareLoopValue() argument
1458 Value pre_header_value = ReplacementOrValue(heap_values_for_[pre_header_block_id][idx].value); in PrepareLoopValue()
1464 HeapLocation* location = heap_location_collector_.GetHeapLocation(idx); in PrepareLoopValue()
1477 PhiPlaceholder phi_placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in PrepareLoopValue()
1481 LSEVisitor::Value LSEVisitor::PrepareLoopStoredBy(HBasicBlock* block, size_t idx) { in PrepareLoopStoredBy() argument
1485 const ReferenceInfo* ref_info = heap_location_collector_.GetHeapLocation(idx)->GetReferenceInfo(); in PrepareLoopStoredBy()
1495 PhiPlaceholder phi_placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in PrepareLoopStoredBy()
1516 for (size_t idx = 0u; idx != num_heap_locations; ++idx) { in PrepareLoopRecords() local
1517 heap_values[idx].value = in PrepareLoopRecords()
1519 : Value::MergedUnknown(GetPhiPlaceholder(block->GetBlockId(), idx)); in PrepareLoopRecords()
1520 KeepStores(Value::ForLoopPhiPlaceholder(GetPhiPlaceholder(block->GetBlockId(), idx))); in PrepareLoopRecords()
1527 for (size_t idx = 0u; idx != num_heap_locations; ++idx) { in PrepareLoopRecords() local
1528 heap_values.push_back({ PrepareLoopValue(block, idx), PrepareLoopStoredBy(block, idx) }); in PrepareLoopRecords()
1532 LSEVisitor::Value LSEVisitor::MergePredecessorValues(HBasicBlock* block, size_t idx) { in MergePredecessorValues() argument
1536 ReplacementOrValue(heap_values_for_[predecessors[0]->GetBlockId()][idx].value); in MergePredecessorValues()
1539 ReplacementOrValue(heap_values_for_[predecessors[i]->GetBlockId()][idx].value); in MergePredecessorValues()
1545 PhiPlaceholder phi_placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in MergePredecessorValues()
1553 PhiPlaceholder phi_placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in MergePredecessorValues()
1583 for (size_t idx = 0u; idx != num_heap_locations; ++idx) { in MergePredecessorRecords() local
1584 Value merged_value = MergePredecessorValues(block, idx); in MergePredecessorRecords()
1594 Value merged_stored_by = heap_values_for_[predecessors[0]->GetBlockId()][idx].stored_by; in MergePredecessorRecords()
1597 Value stored_by = heap_values_for_[predecessor_block_id][idx].stored_by; in MergePredecessorRecords()
1601 PhiPlaceholder phi_placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in MergePredecessorRecords()
1644 size_t idx = phi_placeholder.GetHeapLocation(); in MaterializeNonLoopPhis() local
1672 DCHECK_EQ(current_phi_placeholder.GetHeapLocation(), idx); in MaterializeNonLoopPhis()
1676 Value pred_value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in MaterializeNonLoopPhis()
1701 void LSEVisitor::VisitGetLocation(HInstruction* instruction, size_t idx) { in VisitGetLocation() argument
1702 DCHECK_NE(idx, HeapLocationCollector::kHeapLocationNotFound); in VisitGetLocation()
1705 ValueRecord& record = heap_values[idx]; in VisitGetLocation()
1707 RecordFieldInfo(&instruction->GetFieldInfo(), idx); in VisitGetLocation()
1710 loads_and_stores_.push_back({ instruction, idx }); in VisitGetLocation()
1725 KeepStoresIfAliasedToLocation(heap_values, idx); in VisitGetLocation()
1746 void LSEVisitor::VisitSetLocation(HInstruction* instruction, size_t idx, HInstruction* value) { in VisitSetLocation() argument
1747 DCHECK_NE(idx, HeapLocationCollector::kHeapLocationNotFound); in VisitSetLocation()
1750 RecordFieldInfo(&instruction->GetFieldInfo(), idx); in VisitSetLocation()
1756 ValueRecord& record = heap_values[idx]; in VisitSetLocation()
1773 loads_and_stores_.push_back({ instruction, idx }); in VisitSetLocation()
1810 if (i == idx || in VisitSetLocation()
1813 !heap_location_collector_.MayAlias(i, idx)) { in VisitSetLocation()
1885 size_t idx = current_phi_placeholder.GetHeapLocation(); in TryReplacingLoopPhiPlaceholderWithDefault() local
1887 Value value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in TryReplacingLoopPhiPlaceholderWithDefault()
1903 if (i == idx || in TryReplacingLoopPhiPlaceholderWithDefault()
1905 heap_location_collector_.GetHeapLocation(idx)->GetReferenceInfo()) { in TryReplacingLoopPhiPlaceholderWithDefault()
1974 size_t idx = current_phi_placeholder.GetHeapLocation(); in TryReplacingLoopPhiPlaceholderWithSingleInput() local
1976 Value value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in TryReplacingLoopPhiPlaceholderWithSingleInput()
2042 size_t idx = current_phi_placeholder.GetHeapLocation(); in FindLoopPhisToMaterialize() local
2049 HInstruction* index = heap_location_collector_.GetHeapLocation(idx)->GetIndex(); in FindLoopPhisToMaterialize()
2075 Value value = ReplacementOrValue(heap_values[idx].value); in FindLoopPhisToMaterialize()
2084 heap_location_collector_.GetHeapLocation(idx)->GetIndex() != nullptr) { in FindLoopPhisToMaterialize()
2086 if (i != idx && in FindLoopPhisToMaterialize()
2088 MayAliasOnBackEdge(current_block, idx, i)) { in FindLoopPhisToMaterialize()
2125 size_t idx = phi_placeholder.GetHeapLocation(); in MaterializeLoopPhis() local
2127 Value value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in MaterializeLoopPhis()
2163 size_t idx = phi_placeholder.GetHeapLocation(); in MaterializeLoopPhis() local
2171 Value value = ReplacementOrValue(heap_values_for_[rhs->GetBlockId()][idx].value); in MaterializeLoopPhis()
2205 size_t idx = phi_placeholder.GetHeapLocation(); in MaterializeLoopPhis() local
2211 Value value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in MaterializeLoopPhis()
2278 size_t idx = current_phi_placeholder.GetHeapLocation(); in MaterializeLoopPhis() local
2280 Value pred_value = ReplacementOrValue(heap_values_for_[predecessor->GetBlockId()][idx].value); in MaterializeLoopPhis()
2429 auto get_initial_value = [this](HBasicBlock* block, size_t idx) { in ProcessLoopPhiWithUnknownInput() argument
2433 PhiPlaceholder placeholder = GetPhiPlaceholder(block->GetBlockId(), idx); in ProcessLoopPhiWithUnknownInput()
2436 value = PrepareLoopValue(block, idx); in ProcessLoopPhiWithUnknownInput()
2439 value = MergePredecessorValues(block, idx); in ProcessLoopPhiWithUnknownInput()
2460 size_t idx = loads_and_stores_[loads_and_stores_index].heap_location_index; in ProcessLoopPhiWithUnknownInput() local
2486 local_heap_values[idx] = record->value; in ProcessLoopPhiWithUnknownInput()
2489 local_heap_values[idx] = Value::ForInstruction( in ProcessLoopPhiWithUnknownInput()
2500 if (local_heap_values[idx].IsInvalid()) { in ProcessLoopPhiWithUnknownInput()
2501 local_heap_values[idx] = get_initial_value(block, idx); in ProcessLoopPhiWithUnknownInput()
2503 if (local_heap_values[idx].IsUnknown()) { in ProcessLoopPhiWithUnknownInput()
2510 local_heap_values[idx] = Value::ForInstruction(load_or_store); in ProcessLoopPhiWithUnknownInput()
2511 } else if (local_heap_values[idx].NeedsLoopPhi()) { in ProcessLoopPhiWithUnknownInput()
2513 DCHECK(local_heap_values[idx].Equals(record->value)); in ProcessLoopPhiWithUnknownInput()
2516 if (local_heap_values[idx].NeedsNonLoopPhi()) { in ProcessLoopPhiWithUnknownInput()
2517 MaterializeNonLoopPhis(local_heap_values[idx].GetPhiPlaceholder(), in ProcessLoopPhiWithUnknownInput()
2519 local_heap_values[idx] = Replacement(local_heap_values[idx]); in ProcessLoopPhiWithUnknownInput()
2521 record->value = local_heap_values[idx]; in ProcessLoopPhiWithUnknownInput()
2522 DCHECK(local_heap_values[idx].IsDefault() || local_heap_values[idx].IsInstruction()) in ProcessLoopPhiWithUnknownInput()
2524 HInstruction* heap_value = local_heap_values[idx].IsDefault() ? in ProcessLoopPhiWithUnknownInput()
2526 local_heap_values[idx].GetInstruction(); in ProcessLoopPhiWithUnknownInput()
2536 for (size_t idx = 0; idx != num_heap_locations; ++idx) { in ProcessLoopPhiWithUnknownInput() local
2537 if (heap_values[idx].value.NeedsLoopPhi()) { in ProcessLoopPhiWithUnknownInput()
2538 if (local_heap_values[idx].IsValid()) { in ProcessLoopPhiWithUnknownInput()
2539 heap_values[idx].value = local_heap_values[idx]; in ProcessLoopPhiWithUnknownInput()
2541 heap_values[idx].value = get_initial_value(block, idx); in ProcessLoopPhiWithUnknownInput()
2543 if (heap_values[idx].value.IsUnknown()) { in ProcessLoopPhiWithUnknownInput()
2606 size_t idx = phi_placeholder.GetHeapLocation(); in SearchPhiPlaceholdersForKeptStores() local
2617 size_t start = is_back_edge ? 0u : idx; in SearchPhiPlaceholdersForKeptStores()
2618 size_t end = is_back_edge ? heap_values.size() : idx + 1u; in SearchPhiPlaceholdersForKeptStores()
2621 if (!stored_by.IsUnknown() && (i == idx || MayAliasOnBackEdge(block, idx, i))) { in SearchPhiPlaceholdersForKeptStores()