• Home
  • Raw
  • Download

Lines Matching refs:ins

3189     void AddMaterialization(HBasicBlock* blk, HInstruction* ins) {  in AddMaterialization()  argument
3198 << *ins; in AddMaterialization()
3199 materializations_[blk->GetBlockId()] = ins; in AddMaterialization()
3200 LSE_VLOG << "In block " << blk->GetBlockId() << " materialization is " << *ins; in AddMaterialization()
3201 helper_->NotifyNewMaterialization(ins); in AddMaterialization()
3284 for (auto& [ins, idx] : to_replace) { in ReplaceInput()
3285 HInstruction* merged_inst = GetMaterialization(ins->GetBlock()); in ReplaceInput()
3286 if (ins->IsPhi() && merged_inst->IsPhi() && ins->GetBlock() == merged_inst->GetBlock()) { in ReplaceInput()
3288 ins->ReplaceInput(merged_inst->InputAt(idx), idx); in ReplaceInput()
3290 ins->ReplaceInput(merged_inst, idx); in ReplaceInput()
3296 for (HInstruction* ins : to_remove) { in RemoveAndReplaceInputs()
3297 if (ins->GetBlock() == nullptr) { in RemoveAndReplaceInputs()
3301 DCHECK(BeforeAllEscapes(ins->GetBlock())) << *ins; in RemoveAndReplaceInputs()
3302 if (ins->IsInstanceFieldGet() || ins->IsInstanceFieldSet()) { in RemoveAndReplaceInputs()
3304 ins->IsInstanceFieldGet() && (!ins->GetUses().empty() || !ins->GetEnvUses().empty()); in RemoveAndReplaceInputs()
3308 helper_->lse_->GetPartialValueAt(OriginalNewInstance(), ins); in RemoveAndReplaceInputs()
3311 while (!ins->GetUses().empty()) { in RemoveAndReplaceInputs()
3312 const HUseListNode<HInstruction*>& use = ins->GetUses().front(); in RemoveAndReplaceInputs()
3315 while (!ins->GetEnvUses().empty()) { in RemoveAndReplaceInputs()
3316 const HUseListNode<HEnvironment*>& use = ins->GetEnvUses().front(); in RemoveAndReplaceInputs()
3320 DCHECK(ins->GetUses().empty()) in RemoveAndReplaceInputs()
3322 << ins->DumpWithArgs() << "\nUsers are " << ins->GetUses(); in RemoveAndReplaceInputs()
3323 DCHECK(ins->GetEnvUses().empty()) in RemoveAndReplaceInputs()
3325 << ins->DumpWithArgs() << "\nUsers are " << ins->GetEnvUses(); in RemoveAndReplaceInputs()
3327 ins->GetBlock()->RemoveInstruction(ins); in RemoveAndReplaceInputs()
3332 DCHECK(ins->IsEqual() || ins->IsNotEqual()) << *ins; in RemoveAndReplaceInputs()
3334 if (UNLIKELY(ins->InputAt(0) == ins->InputAt(1))) { in RemoveAndReplaceInputs()
3335 replacement = ins->IsEqual() ? GetGraph()->GetIntConstant(1) in RemoveAndReplaceInputs()
3338 replacement = ins->IsEqual() ? GetGraph()->GetIntConstant(0) in RemoveAndReplaceInputs()
3341 ins->ReplaceWith(replacement); in RemoveAndReplaceInputs()
3342 ins->GetBlock()->RemoveInstruction(ins); in RemoveAndReplaceInputs()
3375 for (auto& [ins, idx] : to_predicate) { in PredicateInstructions()
3376 if (UNLIKELY(ins->GetBlock() == nullptr)) { in PredicateInstructions()
3379 } else if (ins->IsInstanceFieldGet()) { in PredicateInstructions()
3382 ins->AsInstanceFieldGet(), in PredicateInstructions()
3383 GetMaterialization(ins->GetBlock()), in PredicateInstructions()
3384 helper_->lse_->GetPartialValueAt(OriginalNewInstance(), ins)); in PredicateInstructions()
3386 ins->GetBlock()->InsertInstructionBefore(new_fget, ins); in PredicateInstructions()
3387 if (ins->GetType() == DataType::Type::kReference) { in PredicateInstructions()
3389 new_fget->SetReferenceTypeInfoIfValid(ins->GetReferenceTypeInfo()); in PredicateInstructions()
3398 DCHECK(helper_->lse_->substitute_instructions_for_loads_[ins->GetId()] == nullptr); in PredicateInstructions()
3399 helper_->lse_->substitute_instructions_for_loads_[ins->GetId()] = new_fget; in PredicateInstructions()
3400 ins->ReplaceWith(new_fget); in PredicateInstructions()
3401 ins->ReplaceEnvUsesDominatedBy(ins, new_fget); in PredicateInstructions()
3402 CHECK(ins->GetEnvUses().empty() && ins->GetUses().empty()) in PredicateInstructions()
3403 << "Instruction: " << *ins << " uses: " << ins->GetUses() in PredicateInstructions()
3404 << ", env: " << ins->GetEnvUses(); in PredicateInstructions()
3405 ins->GetBlock()->RemoveInstruction(ins); in PredicateInstructions()
3406 } else if (ins->IsInstanceFieldSet()) { in PredicateInstructions()
3408 ins->AsInstanceFieldSet()->SetIsPredicatedSet(); in PredicateInstructions()
3410 HInstruction* merged_inst = GetMaterialization(ins->GetBlock()); in PredicateInstructions()
3411 ins->ReplaceInput(merged_inst, idx); in PredicateInstructions()
3414 DCHECK(ins->IsEqual() || ins->IsNotEqual()) << "bad instruction " << *ins; in PredicateInstructions()
3416 if (ins->InputAt(0) == ins->InputAt(1)) { in PredicateInstructions()
3419 ins->ReplaceWith(GetGraph()->GetIntConstant(ins->IsEqual() ? 1 : 0)); in PredicateInstructions()
3420 ins->GetBlock()->RemoveInstruction(ins); in PredicateInstructions()
3424 HNotEqual(GetMaterialization(ins->GetBlock()), GetGraph()->GetNullConstant()); in PredicateInstructions()
3426 ins->IsEqual() ? static_cast<HInstruction*>(new (GetGraph()->GetAllocator()) HAnd( in PredicateInstructions()
3427 DataType::Type::kBool, is_escaped, ins)) in PredicateInstructions()
3429 DataType::Type::kBool, is_escaped, ins)); in PredicateInstructions()
3430 ins->ReplaceInput(GetMaterialization(ins->GetBlock()), this_is_first ? 0 : 1); in PredicateInstructions()
3431 ins->GetBlock()->InsertInstructionBefore(is_escaped, ins); in PredicateInstructions()
3432 ins->GetBlock()->InsertInstructionAfter(combine_inst, ins); in PredicateInstructions()
3433 ins->ReplaceWith(combine_inst); in PredicateInstructions()
3434 combine_inst->ReplaceInput(ins, 1); in PredicateInstructions()
3500 for (const auto& [ins, off] : ZipCount(MakeIterationRange(pred_vals))) { in GenerateMaterializationValueFromPredecessorsDirect()
3501 phi->SetRawInputAt(off, ins); in GenerateMaterializationValueFromPredecessorsDirect()
3645 for (HInstruction* ins : in ReorderMaterializationsForEnvDominance()
3647 if (ins->IsNewInstance()) { in ReorderMaterializationsForEnvDominance()
3648 materializations.push_back(ins->AsNewInstance()); in ReorderMaterializationsForEnvDominance()
3649 still_unsorted.SetBit(ins->GetId()); in ReorderMaterializationsForEnvDominance()
3684 for (HNewInstance* ins : reverse_iter) { in ReorderMaterializationsForEnvDominance()
3685 if (blk->GetFirstInstruction() != ins) { in ReorderMaterializationsForEnvDominance()
3688 ins->MoveBefore(blk->GetFirstInstruction(), /*do_checks=*/false); in ReorderMaterializationsForEnvDominance()
3726 void NotifyNewMaterialization(HInstruction* ins) { in NotifyNewMaterialization() argument
3727 if (ins->IsPhi()) { in NotifyNewMaterialization()
3728 new_ref_phis_.push_back(ins->AsPhi()); in NotifyNewMaterialization()