/art/compiler/optimizing/ |
D | loop_optimization.h | 98 ArrayReference(HInstruction* b, HInstruction* o, DataType::Type t, bool l, bool c = false) 111 HInstruction* base; // base address 112 HInstruction* offset; // offset + i 150 HInstruction* lo, 151 HInstruction* hi, 152 HInstruction* step, 154 bool VectorizeDef(LoopNode* node, HInstruction* instruction, bool generate_code); 156 HInstruction* instruction, 163 void GenerateVecInv(HInstruction* org, DataType::Type type); 164 void GenerateVecSub(HInstruction* org, HInstruction* offset); [all …]
|
D | induction_var_range.h | 47 Value(HInstruction* i, int32_t a, int32_t b) in Value() 51 HInstruction* instruction; 67 bool GetInductionRange(HInstruction* context, 68 HInstruction* instruction, 69 HInstruction* chase_hint, 80 bool CanGenerateRange(HInstruction* context, 81 HInstruction* instruction, 100 void GenerateRange(HInstruction* context, 101 HInstruction* instruction, 104 /*out*/ HInstruction** lower, [all …]
|
D | induction_var_analysis.h | 105 HInstruction* f, in InductionInfo() 117 HInstruction* fetch; 121 bool IsVisitedNode(HInstruction* instruction) const { in IsVisitedNode() 130 InductionInfo* CreateInvariantFetch(HInstruction* f) { in CreateInvariantFetch() 148 HInstruction* f, in CreateInduction() 156 void VisitNode(HLoopInformation* loop, HInstruction* instruction); 157 uint32_t VisitDescendant(HLoopInformation* loop, HInstruction* instruction); 158 void ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction); 164 HInstruction* phi, 173 InductionInfo* SolvePhi(HInstruction* phi, size_t input_index, size_t adjust_input_size); [all …]
|
D | escape.h | 22 class HInstruction; variable 54 void CalculateEscape(HInstruction* reference, 55 bool (*no_escape)(HInstruction*, HInstruction*), 64 bool DoesNotEscape(HInstruction* reference, bool (*no_escape)(HInstruction*, HInstruction*));
|
D | load_store_elimination.cc | 79 static HInstruction* const kUnknownHeapValue = 80 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-1)); 84 static HInstruction* const kDefaultHeapValue = 85 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-2)); 99 ScopedArenaVector<HInstruction*>(heap_locations_collector. in LSEVisitor() 121 HTypeConversion* AddTypeConversionIfNecessary(HInstruction* instruction, in AddTypeConversionIfNecessary() 122 HInstruction* value, in AddTypeConversionIfNecessary() 137 HInstruction* FindSubstitute(HInstruction* instruction) { in FindSubstitute() 144 HInstruction* substitute = substitute_instructions_for_loads_[i]; in FindSubstitute() 153 void AddRemovedLoad(HInstruction* load, HInstruction* heap_value) { in AddRemovedLoad() [all …]
|
D | ssa_liveness_analysis_test.cc | 68 HInstruction* arg = new (GetAllocator()) HParameterValue( in TEST_F() 73 HInstruction* ret = new (GetAllocator()) HReturn(arg); in TEST_F() 88 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F() 90 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F() 92 HInstruction* value = new (GetAllocator()) HParameterValue( in TEST_F() 94 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( in TEST_F() 96 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( in TEST_F() 98 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; in TEST_F() 99 for (HInstruction* insn : args) { in TEST_F() 104 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0); in TEST_F() [all …]
|
D | scheduler.h | 159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode() 201 HInstruction* GetInstruction() const { return instruction_; } in GetInstruction() 227 HInstruction* const instruction_; 261 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) { 280 SchedulingNode* GetNode(const HInstruction* instr) const { in GetNode() 289 bool IsSchedulingBarrier(const HInstruction* instruction) const; 292 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* other) const; 294 bool HasImmediateOtherDependency(const HInstruction* node, const HInstruction* other) const; 313 bool HasMemoryDependency(const HInstruction* node, const HInstruction* other) const; 314 bool HasExceptionDependency(const HInstruction* node, const HInstruction* other) const; [all …]
|
D | induction_var_analysis_test.cc | 112 HInstruction* compare = new (GetAllocator()) HLessThan(basic_[d], constant100_); in BuildLoopNest() 148 HInstruction* InsertInstruction(HInstruction* instruction, int d) { in InsertInstruction() 162 HInstruction* InsertArrayStore(HInstruction* subscript, int d) { in InsertArrayStore() 170 std::string GetInductionInfo(HInstruction* instruction, int d) { in GetInductionInfo() 177 HInstruction* control = loop_header_[d]->GetLastInstruction(); in GetTripCount() 183 bool HaveSameInduction(HInstruction* instruction1, HInstruction* instruction2) { in HaveSameInduction() 190 bool IsNarrowingLinear(HInstruction* instruction) { in IsNarrowingLinear() 210 HInstruction* parameter_; // "this" 211 HInstruction* constant0_; 212 HInstruction* constant1_; [all …]
|
D | nodes_shared.h | 31 HInstruction* accumulator, 32 HInstruction* mul_left, 33 HInstruction* mul_right, 49 bool InstructionDataEquals(const HInstruction* other) const OVERRIDE { in InstructionDataEquals() 69 HInstruction* left, 70 HInstruction* right, 79 DCHECK(op == HInstruction::kAnd || op == HInstruction::kOr || op == HInstruction::kXor) << op; in HBinaryOperation() 88 case HInstruction::kAnd: 90 case HInstruction::kOr: 92 case HInstruction::kXor: [all …]
|
D | load_store_analysis_test.cc | 47 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F() 49 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F() 51 HInstruction* c1 = graph_->GetIntConstant(1); in TEST_F() 52 HInstruction* c2 = graph_->GetIntConstant(2); in TEST_F() 53 HInstruction* c3 = graph_->GetIntConstant(3); in TEST_F() 54 HInstruction* array_get1 = new (GetAllocator()) HArrayGet(array, c1, DataType::Type::kInt32, 0); in TEST_F() 55 HInstruction* array_get2 = new (GetAllocator()) HArrayGet(array, c2, DataType::Type::kInt32, 0); in TEST_F() 56 HInstruction* array_set1 = in TEST_F() 58 HInstruction* array_set2 = in TEST_F() 119 HInstruction* c1 = graph_->GetIntConstant(1); in TEST_F() [all …]
|
D | register_allocation_resolver.h | 29 class HInstruction; variable 44 void Resolve(ArrayRef<HInstruction* const> safepoints, 58 size_t CalculateMaximumSafepointSpillSize(ArrayRef<HInstruction* const> safepoints); 68 HInstruction* instruction, 72 HInstruction* instruction, 75 void InsertMoveAfter(HInstruction* instruction, Location source, Location destination) const; 76 void AddInputMoveFor(HInstruction* input, 77 HInstruction* user, 81 HInstruction* instruction, 87 HInstruction* instruction,
|
D | code_sinking.cc | 37 HInstruction* last = exit_predecessor->GetLastInstruction(); in Run() 45 static bool IsInterestingInstruction(HInstruction* instruction) { in IsInterestingInstruction() 121 static void AddInstruction(HInstruction* instruction, in AddInstruction() 124 ScopedArenaVector<HInstruction*>* worklist) { in AddInstruction() 134 static void AddInputs(HInstruction* instruction, in AddInputs() 137 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs() 138 for (HInstruction* input : instruction->GetInputs()) { in AddInputs() 146 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs() 155 static bool ShouldFilterUse(HInstruction* instruction, in ShouldFilterUse() 156 HInstruction* user, in ShouldFilterUse() [all …]
|
D | bounds_check_elimination_test.cc | 70 HInstruction* parameter1 = new (GetAllocator()) HParameterValue( in TEST_F() 72 HInstruction* parameter2 = new (GetAllocator()) HParameterValue( in TEST_F() 77 HInstruction* constant_1 = graph_->GetIntConstant(1); in TEST_F() 78 HInstruction* constant_0 = graph_->GetIntConstant(0); in TEST_F() 82 HInstruction* cmp = new (GetAllocator()) HGreaterThanOrEqual(parameter2, constant_0); in TEST_F() 167 HInstruction* parameter1 = new (GetAllocator()) HParameterValue( in TEST_F() 169 HInstruction* parameter2 = new (GetAllocator()) HParameterValue( in TEST_F() 174 HInstruction* constant_1 = graph_->GetIntConstant(1); in TEST_F() 175 HInstruction* constant_0 = graph_->GetIntConstant(0); in TEST_F() 176 HInstruction* constant_max_int = graph_->GetIntConstant(INT_MAX); in TEST_F() [all …]
|
D | instruction_simplifier_shared.cc | 27 HInstruction* input_other) { in TrySimpleMultiplyAccumulatePatterns() 39 HInstruction* input_a = input_other; in TrySimpleMultiplyAccumulatePatterns() 40 HInstruction* input_b = nullptr; // Set to a non-null value if we found a pattern to optimize. in TrySimpleMultiplyAccumulatePatterns() 41 HInstruction::InstructionKind op_kind; in TrySimpleMultiplyAccumulatePatterns() 50 op_kind = HInstruction::kAdd; in TrySimpleMultiplyAccumulatePatterns() 61 op_kind = HInstruction::kAdd; in TrySimpleMultiplyAccumulatePatterns() 69 op_kind = HInstruction::kSub; in TrySimpleMultiplyAccumulatePatterns() 111 HInstruction* use = mul->GetUses().front().GetUser(); in TryCombineMultiplyAccumulate() 124 HInstruction* accumulator = nullptr; in TryCombineMultiplyAccumulate() 126 HInstruction* binop_left = binop->GetLeft(); in TryCombineMultiplyAccumulate() [all …]
|
D | load_store_analysis.h | 30 ReferenceInfo(HInstruction* reference, size_t pos) in ReferenceInfo() 43 HInstruction* GetReference() const { in GetReference() 73 HInstruction* const reference_; 98 HInstruction* index, in HeapLocation() 120 HInstruction* GetIndex() const { return index_; } in GetIndex() 157 HInstruction* const index_; 213 HInstruction* HuntForOriginalReference(HInstruction* ref) const { in HuntForOriginalReference() 225 ReferenceInfo* FindReferenceInfoOf(HInstruction* ref) const { in FindReferenceInfoOf() 236 size_t GetFieldHeapLocation(HInstruction* object, const FieldInfo* field) const { in GetFieldHeapLocation() 246 size_t GetArrayHeapLocation(HInstruction* array, [all …]
|
D | loop_optimization.cc | 57 static void RemoveFromCycle(HInstruction* instruction) { in RemoveFromCycle() 90 static bool IsZeroExtensionAndGet(HInstruction* instruction, 92 /*out*/ HInstruction** operand); 96 static bool IsSignExtensionAndGet(HInstruction* instruction, in IsSignExtensionAndGet() 98 /*out*/ HInstruction** operand) { in IsSignExtensionAndGet() 136 HInstruction* conv = instruction->InputAt(0); in IsSignExtensionAndGet() 161 static bool IsZeroExtensionAndGet(HInstruction* instruction, in IsZeroExtensionAndGet() 163 /*out*/ HInstruction** operand) { in IsZeroExtensionAndGet() 201 HInstruction* conv = instruction->InputAt(0); in IsZeroExtensionAndGet() 224 static bool IsNarrowerOperands(HInstruction* a, in IsNarrowerOperands() [all …]
|
D | register_allocator_graph_color.h | 32 class HInstruction; variable 102 void ProcessInstruction(HInstruction* instruction); 106 void CheckForFixedInputs(HInstruction* instruction); 110 void CheckForFixedOutput(HInstruction* instruction); 114 void AddSafepointsFor(HInstruction* instruction); 118 void CheckForTempLiveIntervals(HInstruction* instruction); 122 void CheckForSafepoint(HInstruction* instruction); 135 void AllocateSpillSlotForCatchPhi(HInstruction* instruction); 164 ScopedArenaVector<HInstruction*> safepoints_;
|
D | inliner.h | 93 HInstruction** return_replacement) 100 HInstruction** return_replacement); 111 HInstruction** return_replacement) 117 HInstruction* obj); 121 HInstruction* obj, 122 HInstruction* value, 195 void AddCHAGuard(HInstruction* invoke_instruction, 197 HInstruction* cursor, 201 HInstruction* receiver, 205 void FixUpReturnReferenceType(ArtMethod* resolved_method, HInstruction* return_replacement) [all …]
|
D | scheduler_test.cc | 101 HInstruction* array = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in TestBuildDependencyGraphAndSchedule() 105 HInstruction* c1 = graph_->GetIntConstant(1); in TestBuildDependencyGraphAndSchedule() 106 HInstruction* c2 = graph_->GetIntConstant(10); in TestBuildDependencyGraphAndSchedule() 107 HInstruction* add1 = new (GetAllocator()) HAdd(DataType::Type::kInt32, c1, c2); in TestBuildDependencyGraphAndSchedule() 108 HInstruction* add2 = new (GetAllocator()) HAdd(DataType::Type::kInt32, add1, c2); in TestBuildDependencyGraphAndSchedule() 109 HInstruction* mul = new (GetAllocator()) HMul(DataType::Type::kInt32, add1, add2); in TestBuildDependencyGraphAndSchedule() 110 HInstruction* div_check = new (GetAllocator()) HDivZeroCheck(add2, 0); in TestBuildDependencyGraphAndSchedule() 111 HInstruction* div = new (GetAllocator()) HDiv(DataType::Type::kInt32, add1, div_check, 0); in TestBuildDependencyGraphAndSchedule() 112 HInstruction* array_get1 = in TestBuildDependencyGraphAndSchedule() 114 HInstruction* array_set1 = in TestBuildDependencyGraphAndSchedule() [all …]
|
D | nodes_vector.h | 129 bool InstructionDataEquals(const HInstruction* other) const OVERRIDE { in InstructionDataEquals() 170 static bool ReturnsSIMDValue(HInstruction* instruction) { in ReturnsSIMDValue() 188 static constexpr size_t kFieldType = HInstruction::kNumberOfGenericPackedBits; 206 HInstruction* input, in HVecUnaryOperation() 220 HInstruction* GetInput() const { return InputAt(0); } in GetInput() 233 HInstruction* left, in HVecBinaryOperation() 234 HInstruction* right, in HVecBinaryOperation() 249 HInstruction* GetLeft() const { return InputAt(0); } in GetLeft() 250 HInstruction* GetRight() const { return InputAt(1); } in GetRight() 284 HInstruction* GetArray() const { return InputAt(0); } in GetArray() [all …]
|
D | escape.cc | 23 void CalculateEscape(HInstruction* reference, in CalculateEscape() 24 bool (*no_escape)(HInstruction*, HInstruction*), in CalculateEscape() argument 47 for (const HUseListNode<HInstruction*>& use : reference->GetUses()) { in CalculateEscape() 48 HInstruction* user = use.GetUser(); in CalculateEscape() 99 bool DoesNotEscape(HInstruction* reference, bool (*no_escape)(HInstruction*, HInstruction*)) { in DoesNotEscape() argument
|
D | instruction_simplifier_arm64.cc | 43 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction); 44 bool TryMergeIntoShifterOperand(HInstruction* use, 45 HInstruction* bitfield_op, 47 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand() 50 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand() 64 HInstruction* instruction = it.Current(); in VisitBasicBlock() 88 bool InstructionSimplifierArm64Visitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() 89 HInstruction* bitfield_op, in TryMergeIntoShifterOperand() 101 HInstruction* left; in TryMergeIntoShifterOperand() 102 HInstruction* right; in TryMergeIntoShifterOperand() [all …]
|
D | instruction_simplifier_arm.cc | 43 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction); 44 bool TryMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op, bool do_merge); 45 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand() 48 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand() 62 HInstruction* instruction = it.Current(); in VisitBasicBlock() 82 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() 83 HInstruction* bitfield_op, in TryMergeIntoShifterOperand() 95 HInstruction* left = use->InputAt(0); in TryMergeIntoShifterOperand() 96 HInstruction* right = use->InputAt(1); in TryMergeIntoShifterOperand() 107 HInstruction* other_input; in TryMergeIntoShifterOperand() [all …]
|
D | scheduler.cc | 73 size_t SchedulingGraph::ArrayAccessHeapLocation(HInstruction* array, HInstruction* index) const { in ArrayAccessHeapLocation() 81 bool SchedulingGraph::ArrayAccessMayAlias(const HInstruction* node, in ArrayAccessMayAlias() 82 const HInstruction* other) const { in ArrayAccessMayAlias() 100 static bool IsArrayAccess(const HInstruction* instruction) { in IsArrayAccess() 104 static bool IsInstanceFieldAccess(const HInstruction* instruction) { in IsInstanceFieldAccess() 111 static bool IsStaticFieldAccess(const HInstruction* instruction) { in IsStaticFieldAccess() 118 static bool IsResolvedFieldAccess(const HInstruction* instruction) { in IsResolvedFieldAccess() 125 static bool IsUnresolvedFieldAccess(const HInstruction* instruction) { in IsUnresolvedFieldAccess() 132 static bool IsFieldAccess(const HInstruction* instruction) { in IsFieldAccess() 136 static const FieldInfo* GetFieldInfo(const HInstruction* instruction) { in GetFieldInfo() [all …]
|
D | instruction_simplifier_shared.h | 26 inline bool CanFitInShifterOperand(HInstruction* instruction) { in CanFitInShifterOperand() 41 inline bool HasShifterOperand(HInstruction* instr, InstructionSet isa) { in HasShifterOperand() 57 bool TryExtractArrayAccessAddress(HInstruction* access, 58 HInstruction* array, 59 HInstruction* index, 62 bool TryExtractVecArrayAccessAddress(HVecMemoryOperation* access, HInstruction* index);
|