/art/compiler/optimizing/ |
D | load_store_analysis.h | 32 ReferenceInfo(HInstruction* reference, size_t pos) in ReferenceInfo() 45 HInstruction* GetReference() const { in GetReference() 75 HInstruction* const reference_; 101 HInstruction* index, in HeapLocation() 125 HInstruction* GetIndex() const { return index_; } in GetIndex() 166 HInstruction* const index_; 225 HInstruction* HuntForOriginalReference(HInstruction* ref) const { in HuntForOriginalReference() 237 ReferenceInfo* FindReferenceInfoOf(HInstruction* ref) const { in FindReferenceInfoOf() 248 size_t GetFieldHeapLocation(HInstruction* object, const FieldInfo* field) const { in GetFieldHeapLocation() 259 size_t GetArrayHeapLocation(HInstruction* instruction) const { in GetArrayHeapLocation() [all …]
|
D | instruction_simplifier_shared.h | 26 inline bool CanFitInShifterOperand(HInstruction* instruction) { in CanFitInShifterOperand() 41 inline bool HasShifterOperand(HInstruction* instr, InstructionSet isa) { in HasShifterOperand() 55 HInstruction* right = sub->GetRight(); in IsSubRightSubLeftShl() 66 bool TryExtractArrayAccessAddress(HInstruction* access, 67 HInstruction* array, 68 HInstruction* index, 71 bool TryExtractVecArrayAccessAddress(HVecMemoryOperation* access, HInstruction* index);
|
D | scheduler.cc | 52 bool SideEffectDependencyAnalysis::HasReorderingDependency(const HInstruction* instr1, in HasReorderingDependency() 53 const HInstruction* instr2) { in HasReorderingDependency() 76 HInstruction* instruction) const { in ArrayAccessHeapLocation() 85 HInstruction* instr1, HInstruction* instr2) const { in ArrayAccessMayAlias() 103 static bool IsArrayAccess(const HInstruction* instruction) { in IsArrayAccess() 107 static bool IsInstanceFieldAccess(const HInstruction* instruction) { in IsInstanceFieldAccess() 114 static bool IsStaticFieldAccess(const HInstruction* instruction) { in IsStaticFieldAccess() 121 static bool IsResolvedFieldAccess(const HInstruction* instruction) { in IsResolvedFieldAccess() 128 static bool IsUnresolvedFieldAccess(const HInstruction* instruction) { in IsUnresolvedFieldAccess() 135 static bool IsFieldAccess(const HInstruction* instruction) { in IsFieldAccess() [all …]
|
D | cha_guard_optimization.cc | 54 bool OptimizeForParameter(HShouldDeoptimizeFlag* flag, HInstruction* receiver); 56 bool OptimizeWithDominatingGuard(HShouldDeoptimizeFlag* flag, HInstruction* receiver); 58 bool HoistGuard(HShouldDeoptimizeFlag* flag, HInstruction* receiver); 90 HInstruction* compare = flag->GetNext(); in RemoveGuard() 92 HInstruction* deopt = compare->GetNext(); in RemoveGuard() 106 HInstruction* receiver) { in OptimizeForParameter() 123 HInstruction* receiver) { in OptimizeWithDominatingGuard() 149 HInstruction* instruction; in OptimizeWithDominatingGuard() 175 HInstruction* receiver) { in HoistGuard() 186 HInstruction* compare = flag->GetNext(); in HoistGuard() [all …]
|
D | nodes_test.cc | 37 HInstruction* parameter = new (GetAllocator()) HParameterValue( in TEST_F() 45 HInstruction* null_check = new (GetAllocator()) HNullCheck(parameter, 0); in TEST_F() 77 HInstruction* parameter1 = new (GetAllocator()) HParameterValue( in TEST_F() 79 HInstruction* parameter2 = new (GetAllocator()) HParameterValue( in TEST_F() 87 HInstruction* to_insert = new (GetAllocator()) HNullCheck(parameter1, 0); in TEST_F() 102 HInstruction* parameter = new (GetAllocator()) HParameterValue( in TEST_F() 108 HInstruction* to_add = new (GetAllocator()) HNullCheck(parameter, 0); in TEST_F() 120 HInstruction* parameter1 = new (GetAllocator()) HParameterValue( in TEST_F() 122 HInstruction* with_environment = new (GetAllocator()) HNullCheck(parameter1, 0); in TEST_F() 132 HInstruction* const array[] = { parameter1 }; in TEST_F() [all …]
|
D | nodes.h | 64 class HInstruction; variable 149 void AddInstruction(HInstruction* instruction); 150 void RemoveInstruction(HInstruction* instruction); 153 void InsertInstructionBefore(HInstruction* instruction, HInstruction* cursor); 154 void InsertInstructionAfter(HInstruction* instruction, HInstruction* cursor); 157 bool Contains(HInstruction* instruction) const; 162 bool FoundBefore(const HInstruction* instruction1, 163 const HInstruction* instruction2) const; 171 void AddAfter(HInstruction* cursor, const HInstructionList& instruction_list); 172 void AddBefore(HInstruction* cursor, const HInstructionList& instruction_list); [all …]
|
D | instruction_simplifier.cc | 113 bool CanEnsureNotNullAt(HInstruction* instr, HInstruction* at) const; 222 HInstruction* left = op->GetLeft(); in TryDeMorganNegationFactoring() 223 HInstruction* right = op->GetRight(); in TryDeMorganNegationFactoring() 238 HInstruction* src_left = left->InputAt(0); in TryDeMorganNegationFactoring() 239 HInstruction* src_right = right->InputAt(0); in TryDeMorganNegationFactoring() 255 HInstruction* hnot; in TryDeMorganNegationFactoring() 292 HInstruction* use = mul->GetUses().front().GetUser(); in TryCombineVecMultiplyAccumulate() 305 HInstruction* accumulator = nullptr; in TryCombineVecMultiplyAccumulate() 307 HInstruction* binop_left = binop->GetLeft(); in TryCombineVecMultiplyAccumulate() 308 HInstruction* binop_right = binop->GetRight(); in TryCombineVecMultiplyAccumulate() [all …]
|
D | constructor_fence_redundancy_elimination.cc | 67 HInstruction* value = instruction->InputAt(1); in VisitInstanceFieldSet() 72 HInstruction* value = instruction->InputAt(1); in VisitStaticFieldSet() 77 HInstruction* value = instruction->InputAt(2); in VisitArraySet() 131 void HandleInvoke(HInstruction* invoke) { in HandleInvoke() 147 void VisitAlias(HInstruction* aliasing_inst) { in VisitAlias() 164 void VisitSetLocation(HInstruction* inst ATTRIBUTE_UNUSED, HInstruction* store_input) { in VisitSetLocation() 175 bool HasInterestingPublishTargetAsInput(HInstruction* inst) { in HasInterestingPublishTargetAsInput() 216 bool IsInterestingPublishTarget(HInstruction* store_input) const { in IsInterestingPublishTarget() 245 ScopedArenaHashSet<HInstruction*> candidate_fence_targets_;
|
D | bounds_check_elimination.cc | 37 ValueBound(HInstruction* instruction, int32_t constant) { in ValueBound() 68 static bool IsAddOrSubAConstant(HInstruction* instruction, in IsAddOrSubAConstant() 69 /* out */ HInstruction** left_instruction, in IsAddOrSubAConstant() 71 HInstruction* left_so_far = nullptr; in IsAddOrSubAConstant() 75 HInstruction* left = bin_op->GetLeft(); in IsAddOrSubAConstant() 76 HInstruction* right = bin_op->GetRight(); in IsAddOrSubAConstant() 96 static ValueBound AsValueBound(HInstruction* instruction) { in AsValueBound() 100 HInstruction *left; in AsValueBound() 110 static ValueBound DetectValueBoundFromValue(HInstruction* instruction, /* out */ bool* found) { in DetectValueBoundFromValue() 122 HInstruction *left; in DetectValueBoundFromValue() [all …]
|
D | prepare_for_register_allocation.cc | 55 HInstruction* next = check->GetNext(); in VisitNullCheck() 105 HInstruction* value = instruction->GetValue(); in VisitArraySet() 119 HInstruction* implicit_clinit = nullptr; in VisitClinitCheck() 120 for (const HUseListNode<HInstruction*>& use : check->GetUses()) { in VisitClinitCheck() 121 HInstruction* user = use.GetUser(); in VisitClinitCheck() 142 const HUseList<HInstruction*>& uses = check->GetUses(); in VisitClinitCheck() 144 HInstruction* user = it->GetUser(); in VisitClinitCheck() 179 HInstruction* user) const { in CanEmitConditionAt() 197 HInstruction* user = condition->GetUses().front().GetUser(); in VisitCondition() 214 HInstruction* allocation_inst = constructor_fence->GetAssociatedAllocation(); in VisitConstructorFence() [all …]
|
D | graph_visualizer.h | 31 class HInstruction; variable 59 instruction_intervals_(std::less<const HInstruction*>(), allocator->Adapter()), 66 void AddInstructionInterval(HInstruction* instr, size_t start, size_t end) { in AddInstructionInterval() 82 const ArenaSafeMap<const HInstruction*, GeneratedCodeInterval>& GetInstructionIntervals() const { in GetInstructionIntervals() 86 ArenaSafeMap<const HInstruction*, GeneratedCodeInterval>* GetInstructionIntervals() { in GetInstructionIntervals() 96 ArenaSafeMap<const HInstruction*, GeneratedCodeInterval> instruction_intervals_;
|
D | instruction_builder.h | 81 ScopedArenaVector<HInstruction*>* GetLocalsFor(HBasicBlock* block); 84 ScopedArenaVector<HInstruction*>* GetLocalsForWithAllocation( 85 HBasicBlock* block, ScopedArenaVector<HInstruction*>* locals, const size_t vregs); 86 HInstruction* ValueOfLocalAt(HBasicBlock* block, size_t local); 87 HInstruction* LoadLocal(uint32_t register_index, DataType::Type type) const; 88 HInstruction* LoadNullCheckedLocal(uint32_t register_index, uint32_t dex_pc); 89 void UpdateLocal(uint32_t register_index, HInstruction* instruction); 91 void AppendInstruction(HInstruction* instruction); 92 void InsertInstructionAtTop(HInstruction* instruction); 93 void InitializeInstruction(HInstruction* instruction); [all …]
|
D | locations.cc | 29 LocationSummary::LocationSummary(HInstruction* instruction, in LocationSummary() 50 LocationSummary::LocationSummary(HInstruction* instruction, in LocationSummary() 58 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant() 64 Location Location::RegisterOrInt32Constant(HInstruction* instruction) { in RegisterOrInt32Constant() 75 Location Location::FpuRegisterOrInt32Constant(HInstruction* instruction) { in FpuRegisterOrInt32Constant() 86 Location Location::ByteRegisterOrConstant(int reg, HInstruction* instruction) { in ByteRegisterOrConstant() 92 Location Location::FpuRegisterOrConstant(HInstruction* instruction) { in FpuRegisterOrConstant()
|
D | ssa_phi_elimination.cc | 55 for (const HUseListNode<HInstruction*>& use : phi->GetUses()) { in MarkDeadPhis() 78 for (HInstruction* raw_input : phi->GetInputs()) { in MarkDeadPhis() 96 HInstruction* current = block->GetFirstPhi(); in EliminateDeadPhis() 97 HInstruction* next = nullptr; in EliminateDeadPhis() 105 for (const HUseListNode<HInstruction*>& use : phi->GetUses()) { in EliminateDeadPhis() 106 HInstruction* user = use.GetUser(); in EliminateDeadPhis() 164 HInstruction* candidate = nullptr; in Run() 174 for (HInstruction* input : phi->GetInputs()) { in Run() 195 for (HInstruction* input : current->GetInputs()) { in Run() 248 for (const HUseListNode<HInstruction*>& use : current->GetUses()) { in Run() [all …]
|
D | reference_type_propagation.cc | 84 void UpdateFieldAccessTypeInfo(HInstruction* instr, const FieldInfo& info); 85 void SetClassAsTypeInfo(HInstruction* instr, ObjPtr<mirror::Class> klass, bool is_exact) 89 static bool UpdateNullability(HInstruction* instr); 93 bool UpdateReferenceTypeInfo(HInstruction* instr); 94 void UpdateReferenceTypeInfo(HInstruction* instr, 99 void AddToWorklist(HInstruction* instruction); 100 void AddDependentInstructionsToWorklist(HInstruction* instruction); 113 ScopedArenaVector<HInstruction*> worklist_; 134 HInstruction* instr = iti.Current(); in ValidateTypes() 161 void ReferenceTypePropagation::Visit(HInstruction* instruction) { in Visit() [all …]
|
D | ssa_builder.cc | 36 HInstruction* equality_instr = it.Current(); in FixNullConstantType() 40 HInstruction* left = equality_instr->InputAt(0); in FixNullConstantType() 41 HInstruction* right = equality_instr->InputAt(1); in FixNullConstantType() 42 HInstruction* int_operand = nullptr; in FixNullConstantType() 94 HInstruction* next = phi->GetNext(); in FixEnvironmentPhis() 110 static void AddDependentInstructionsToWorklist(HInstruction* instruction, in AddDependentInstructionsToWorklist() 117 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in AddDependentInstructionsToWorklist() 118 HInstruction* user = use.GetUser(); in AddDependentInstructionsToWorklist() 132 for (HInstruction* input : phi->GetInputs()) { in TypePhiFromInputs() 179 for (HInstruction* input : phi->GetInputs()) { in TypeInputsOfPhi() [all …]
|
D | licm_test.cc | 109 HInstruction* parameter_; // "this" 110 HInstruction* int_constant_; 111 HInstruction* float_constant_; 122 HInstruction* get_field = new (GetAllocator()) HInstanceFieldGet(parameter_, in TEST_F() 132 HInstruction* set_field = new (GetAllocator()) HInstanceFieldSet( in TEST_F() 149 HInstruction* get_field = new (GetAllocator()) HInstanceFieldGet(parameter_, in TEST_F() 159 HInstruction* set_field = new (GetAllocator()) HInstanceFieldSet(parameter_, in TEST_F() 182 HInstruction* get_array = new (GetAllocator()) HArrayGet( in TEST_F() 185 HInstruction* set_array = new (GetAllocator()) HArraySet( in TEST_F() 200 HInstruction* get_array = new (GetAllocator()) HArrayGet( in TEST_F() [all …]
|
D | code_generator_utils.h | 26 class HInstruction; variable 35 bool IsBooleanValueOrMaterializedCondition(HInstruction* cond_input); 45 bool HasNonNegativeResultOrMinInt(HInstruction* instruction);
|
D | nodes.cc | 98 void RemoveEnvironmentUses(HInstruction* instruction) { in RemoveEnvironmentUses() 111 bool HasEnvironmentUsedByOthers(HInstruction* instruction) { in HasEnvironmentUsedByOthers() 116 HInstruction* user = environment->GetInstructionAt(i); in HasEnvironmentUsedByOthers() 126 void ResetEnvironmentInputRecords(HInstruction* instruction) { in ResetEnvironmentInputRecords() 139 static void RemoveAsUser(HInstruction* instruction) { in RemoveAsUser() 242 HInstruction* HBasicBlock::GetFirstInstructionDisregardMoves() const { in GetFirstInstructionDisregardMoves() 243 HInstruction* instruction = GetFirstInstruction(); in GetFirstInstructionDisregardMoves() 377 HInstruction* first_instr = phi->InputAt(first); in FixPhisAfterPredecessorsReodering() 378 HInstruction* second_instr = phi->InputAt(second); in FixPhisAfterPredecessorsReodering() 486 HInstruction* orig_input = header_phi->InputAt(first_nonbackedge_pred_pos); in TransformLoopToSinglePreheaderFormat() [all …]
|
D | induction_var_analysis.cc | 29 ArenaVector<HInstruction*>* scc, in RotateEntryPhiFirst() 30 ArenaVector<HInstruction*>* new_scc) { in RotateEntryPhiFirst() 33 HInstruction* phi = nullptr; in RotateEntryPhiFirst() 37 HInstruction* other = (*scc)[i]; in RotateEntryPhiFirst() 101 HInstruction* a, in IsGuardedBy() 102 HInstruction* b) { in IsGuardedBy() 120 HInstruction* control = guard->GetLastInstruction(); in IsGuardedBy() 125 HInstruction* if_expr = ifs->InputAt(0); in IsGuardedBy() 146 HInstruction* FindFirstLoopHeaderPhiUse(HLoopInformation* loop, HInstruction* instruction) { in FindFirstLoopHeaderPhiUse() 147 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in FindFirstLoopHeaderPhiUse() [all …]
|
D | common_arm.h | 87 inline vixl::aarch32::SRegister OutputSRegister(HInstruction* instr) { in OutputSRegister() 93 inline vixl::aarch32::DRegister OutputDRegister(HInstruction* instr) { in OutputDRegister() 99 inline vixl::aarch32::VRegister OutputVRegister(HInstruction* instr) { in OutputVRegister() 108 inline vixl::aarch32::SRegister InputSRegisterAt(HInstruction* instr, int input_index) { in InputSRegisterAt() 114 inline vixl::aarch32::DRegister InputDRegisterAt(HInstruction* instr, int input_index) { in InputDRegisterAt() 120 inline vixl::aarch32::VRegister InputVRegisterAt(HInstruction* instr, int input_index) { in InputVRegisterAt() 130 inline vixl::aarch32::VRegister InputVRegister(HInstruction* instr) { in InputVRegister() 135 inline vixl::aarch32::Register OutputRegister(HInstruction* instr) { in OutputRegister() 139 inline vixl::aarch32::Register InputRegisterAt(HInstruction* instr, int input_index) { in InputRegisterAt() 144 inline vixl::aarch32::Register InputRegister(HInstruction* instr) { in InputRegister() [all …]
|
D | licm.cc | 23 static bool IsPhiOf(HInstruction* instruction, HBasicBlock* block) { in IsPhiOf() 31 static bool InputsAreDefinedBeforeLoop(HInstruction* instruction) { in InputsAreDefinedBeforeLoop() 34 for (const HInstruction* input : instruction->GetInputs()) { in InputsAreDefinedBeforeLoop() 47 HInstruction* input = environment->GetInstructionAt(i); in InputsAreDefinedBeforeLoop() 70 HInstruction* input = environment->GetInstructionAt(i); in UpdateLoopPhisIn() 73 HInstruction* incoming = input->InputAt(0); in UpdateLoopPhisIn() 132 HInstruction* instruction = inst_it.Current(); in Run()
|
D | dead_code_elimination.cc | 45 HInstruction* last_instruction = block->GetLastInstruction(); in MarkReachableBlocks() 48 HInstruction* condition = if_instruction->InputAt(0); in MarkReachableBlocks() 61 HInstruction* switch_input = switch_instruction->InputAt(0); in MarkReachableBlocks() 103 static bool HasInput(HCondition* instruction, HInstruction* input) { in HasInput() 125 static HConstant* Evaluate(HCondition* condition, HInstruction* left, HInstruction* right) { in Evaluate() 165 HInstruction* cond = ifs->InputAt(0); in RemoveNonNullControlDependences() 175 HInstruction* obj = cond->InputAt(1); in RemoveNonNullControlDependences() 183 const HUseList<HInstruction*>& uses = obj->GetUses(); in RemoveNonNullControlDependences() 185 HInstruction* user = it->GetUser(); in RemoveNonNullControlDependences() 243 HInstruction* first = block->GetFirstInstruction(); in SimplifyAlwaysThrows() [all …]
|
D | superblock_cloner.h | 140 using HInstructionMap = ArenaSafeMap<HInstruction*, HInstruction*>; 189 HInstruction* GetInstrCopy(HInstruction* orig_instr) const { in GetInstrCopy() 201 HInstruction* GetInstrOrig(HInstruction* copy_instr) const { in GetInstrOrig() 280 void ReplaceInputsWithCopies(HInstruction* copy_instr); 285 void DeepCloneEnvironmentWithRemapping(HInstruction* copy_instr, const HEnvironment* orig_env); 331 HInstruction* user, HInstruction* old_instruction, HInstruction* replacement); 336 void CheckInstructionInputsRemapping(HInstruction* orig_instr);
|
D | induction_var_range.cc | 75 HInstruction* instruction, HInstruction* hint, /*out*/HInstruction** suitable) { in IsMaxAtHint() 99 static InductionVarRange::Value SimplifyMax(InductionVarRange::Value v, HInstruction* hint) { in SimplifyMax() 110 HInstruction* suitable = nullptr; in SimplifyMax() 144 static HInstruction* Insert(HBasicBlock* block, HInstruction* instruction) { in Insert() 153 static HInstruction* GetLoopControl(HLoopInformation* loop) { in GetLoopControl() 168 bool InductionVarRange::GetInductionRange(HInstruction* context, in GetInductionRange() 169 HInstruction* instruction, in GetInductionRange() 170 HInstruction* chase_hint, in GetInductionRange() 208 bool InductionVarRange::CanGenerateRange(HInstruction* context, in CanGenerateRange() 209 HInstruction* instruction, in CanGenerateRange() [all …]
|