/art/compiler/optimizing/ |
D | load_store_elimination_test.cc | 42 HInstruction* c1 = graph_->GetIntConstant(1); in CreateEntryBlockInstructions() 43 HInstruction* c4 = graph_->GetIntConstant(4); in CreateEntryBlockInstructions() 71 HInstruction* c0 = graph_->GetIntConstant(0); in CreateTestControlFlowGraph() 72 HInstruction* c1 = graph_->GetIntConstant(1); in CreateTestControlFlowGraph() 73 HInstruction* c128 = graph_->GetIntConstant(128); in CreateTestControlFlowGraph() 89 HInstruction* inc_phi = new (GetAllocator()) HAdd(DataType::Type::kInt32, phi_, c1); in CreateTestControlFlowGraph() 90 HInstruction* cmp = new (GetAllocator()) HGreaterThanOrEqual(phi_, c128); in CreateTestControlFlowGraph() 91 HInstruction* hif = new (GetAllocator()) HIf(cmp); in CreateTestControlFlowGraph() 102 ArenaVector<HInstruction*> current_locals({array_, i_, j_}, in CreateEnvForSuspendCheck() 129 HInstruction* cmp = new (GetAllocator()) HGreaterThanOrEqual(i_, j_); in CreateDiamondShapedCFG() [all …]
|
D | loop_analysis.cc | 52 HInstruction* instruction = it.Current(); in CalculateLoopBasicProperties() 187 uint32_t GetMachineInstructionCount(HInstruction* inst) const { in GetMachineInstructionCount() 189 case HInstruction::InstructionKind::kAbs: in GetMachineInstructionCount() 191 case HInstruction::InstructionKind::kAdd: in GetMachineInstructionCount() 193 case HInstruction::InstructionKind::kAnd: in GetMachineInstructionCount() 195 case HInstruction::InstructionKind::kArrayLength: in GetMachineInstructionCount() 197 case HInstruction::InstructionKind::kArrayGet: in GetMachineInstructionCount() 199 case HInstruction::InstructionKind::kArraySet: in GetMachineInstructionCount() 201 case HInstruction::InstructionKind::kBoundsCheck: in GetMachineInstructionCount() 203 case HInstruction::InstructionKind::kCheckCast: in GetMachineInstructionCount() [all …]
|
D | loop_optimization.h | 101 ArrayReference(HInstruction* b, HInstruction* o, DataType::Type t, bool l, bool c = false) 114 HInstruction* base; // base address 115 HInstruction* offset; // offset + i 177 HInstruction* lo, 178 HInstruction* hi, 179 HInstruction* step, 181 bool VectorizeDef(LoopNode* node, HInstruction* instruction, bool generate_code); 183 HInstruction* instruction, 198 void GenerateVecInv(HInstruction* org, DataType::Type type); 199 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 | 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 | 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 | ssa_liveness_analysis_test.cc | 60 HInstruction* arg = new (GetAllocator()) HParameterValue( in TEST_F() 65 HInstruction* ret = new (GetAllocator()) HReturn(arg); in TEST_F() 80 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F() 82 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F() 84 HInstruction* value = new (GetAllocator()) HParameterValue( in TEST_F() 86 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( in TEST_F() 88 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( in TEST_F() 90 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; in TEST_F() 91 for (HInstruction* insn : args) { in TEST_F() 96 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0); in TEST_F() [all …]
|
D | load_store_elimination.cc | 78 static HInstruction* const kUnknownHeapValue = 79 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-1)); 83 static HInstruction* const kDefaultHeapValue = 84 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-2)); 98 ScopedArenaVector<HInstruction*>(heap_locations_collector. in LSEVisitor() 120 HTypeConversion* FindOrAddTypeConversionIfNecessary(HInstruction* instruction, in FindOrAddTypeConversionIfNecessary() 121 HInstruction* value, in FindOrAddTypeConversionIfNecessary() 133 for (const HUseListNode<HInstruction*>& use : value->GetUses()) { in FindOrAddTypeConversionIfNecessary() 162 HInstruction* FindSubstitute(HInstruction* instruction) { in FindSubstitute() 169 HInstruction* substitute = substitute_instructions_for_loads_[i]; in FindSubstitute() [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 | 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_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() 126 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 | instruction_simplifier_x86_shared.cc | 31 HInstruction* left = instruction->GetLeft(); in TryCombineAndNot() 32 HInstruction* right = instruction->GetRight(); in TryCombineAndNot() 38 HInstruction* other_ins = (left_is_not ? right : left); in TryCombineAndNot() 67 HInstruction* candidate = nullptr; in TryGenerateResetLeastSetBit() 68 HInstruction* other = nullptr; in TryGenerateResetLeastSetBit() 69 HInstruction* left = instruction->GetLeft(); in TryGenerateResetLeastSetBit() 70 HInstruction* right = instruction->GetRight(); in TryGenerateResetLeastSetBit() 81 type, HInstruction::kAnd, other, instruction->GetDexPc()); in TryGenerateResetLeastSetBit() 100 HInstruction* left = instruction->GetLeft(); in TryGenerateMaskUptoLeastSetBit() 101 HInstruction* right = instruction->GetRight(); in TryGenerateMaskUptoLeastSetBit() [all …]
|
D | code_sinking.cc | 37 HInstruction* last = exit_predecessor->GetLastInstruction(); in Run() 46 static bool IsInterestingInstruction(HInstruction* instruction) { in IsInterestingInstruction() 122 static void AddInstruction(HInstruction* instruction, in AddInstruction() 125 ScopedArenaVector<HInstruction*>* worklist) { in AddInstruction() 135 static void AddInputs(HInstruction* instruction, in AddInputs() 138 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs() 139 for (HInstruction* input : instruction->GetInputs()) { in AddInputs() 147 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs() 156 static bool ShouldFilterUse(HInstruction* instruction, in ShouldFilterUse() 157 HInstruction* user, in ShouldFilterUse() [all …]
|
D | scheduler.h | 159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode() 211 HInstruction* GetInstruction() const { return instruction_; } in GetInstruction() 245 HInstruction* const instruction_; 276 bool HasSideEffectDependency(HInstruction* instr1, HInstruction* instr2) const { in HasSideEffectDependency() 292 static bool HasExceptionDependency(const HInstruction* instr1, const HInstruction* instr2); 293 static bool HasReorderingDependency(const HInstruction* instr1, const HInstruction* instr2); 304 bool HasMemoryDependency(HInstruction* instr1, HInstruction* instr2) const; 307 bool ArrayAccessMayAlias(HInstruction* instr1, HInstruction* instr2) const; 308 bool FieldAccessMayAlias(const HInstruction* instr1, const HInstruction* instr2) const; 309 size_t ArrayAccessHeapLocation(HInstruction* instruction) const; [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 | scheduler_test.cc | 95 HInstruction* array = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in TestBuildDependencyGraphAndSchedule() 99 HInstruction* c1 = graph_->GetIntConstant(1); in TestBuildDependencyGraphAndSchedule() 100 HInstruction* c2 = graph_->GetIntConstant(10); in TestBuildDependencyGraphAndSchedule() 101 HInstruction* add1 = new (GetAllocator()) HAdd(DataType::Type::kInt32, c1, c2); in TestBuildDependencyGraphAndSchedule() 102 HInstruction* add2 = new (GetAllocator()) HAdd(DataType::Type::kInt32, add1, c2); in TestBuildDependencyGraphAndSchedule() 103 HInstruction* mul = new (GetAllocator()) HMul(DataType::Type::kInt32, add1, add2); in TestBuildDependencyGraphAndSchedule() 104 HInstruction* div_check = new (GetAllocator()) HDivZeroCheck(add2, 0); in TestBuildDependencyGraphAndSchedule() 105 HInstruction* div = new (GetAllocator()) HDiv(DataType::Type::kInt32, add1, div_check, 0); in TestBuildDependencyGraphAndSchedule() 106 HInstruction* array_get1 = in TestBuildDependencyGraphAndSchedule() 108 HInstruction* array_set1 = in TestBuildDependencyGraphAndSchedule() [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 | nodes_vector.h | 125 void SetGoverningPredicate(HInstruction* input, PredicationKind pred_kind) { in SetGoverningPredicate() 133 void SetMergingGoverningPredicate(HInstruction* input) { in SetMergingGoverningPredicate() 136 void SetZeroingGoverningPredicate(HInstruction* input) { in SetZeroingGoverningPredicate() 143 HInstruction* pred_input = InputAt(InputCount() - 1); in GetGoverningPredicate() 180 bool InstructionDataEquals(const HInstruction* other) const override { in InstructionDataEquals() 221 static bool ReturnsSIMDValue(HInstruction* instruction) { in ReturnsSIMDValue() 239 static constexpr size_t kPredicationKind = HInstruction::kNumberOfGenericPackedBits; 261 HInstruction* input, in HVecUnaryOperation() 275 HInstruction* GetInput() const { return InputAt(0); } in GetInput() 288 HInstruction* left, in HVecBinaryOperation() [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 | inliner.h | 97 HInstruction** return_replacement) 103 HInstruction** return_replacement) 122 HInstruction** return_replacement) 160 HInstruction* obj); 164 HInstruction* obj, 165 HInstruction* value, 238 void AddCHAGuard(HInstruction* invoke_instruction, 240 HInstruction* cursor, 244 HInstruction* receiver, 248 void FixUpReturnReferenceType(ArtMethod* resolved_method, HInstruction* return_replacement) [all …]
|
D | loop_optimization.cc | 53 static void RemoveFromCycle(HInstruction* instruction) { in RemoveFromCycle() 86 static bool IsZeroExtensionAndGet(HInstruction* instruction, 88 /*out*/ HInstruction** operand); 92 static bool IsSignExtensionAndGet(HInstruction* instruction, in IsSignExtensionAndGet() 94 /*out*/ HInstruction** operand) { in IsSignExtensionAndGet() 132 HInstruction* conv = instruction->InputAt(0); in IsSignExtensionAndGet() 157 static bool IsZeroExtensionAndGet(HInstruction* instruction, in IsZeroExtensionAndGet() 159 /*out*/ HInstruction** operand) { in IsZeroExtensionAndGet() 197 HInstruction* conv = instruction->InputAt(0); in IsZeroExtensionAndGet() 220 static bool IsNarrowerOperands(HInstruction* a, in IsNarrowerOperands() [all …]
|
D | instruction_simplifier_arm.cc | 44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction); 45 bool TryMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op, bool do_merge); 46 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand() 49 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand() 63 HInstruction* instruction = it.Current(); in VisitBasicBlock() 84 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() 85 HInstruction* bitfield_op, in TryMergeIntoShifterOperand() 97 HInstruction* left = use->InputAt(0); in TryMergeIntoShifterOperand() 98 HInstruction* right = use->InputAt(1); in TryMergeIntoShifterOperand() 109 HInstruction* other_input; in TryMergeIntoShifterOperand() [all …]
|
D | instruction_simplifier_arm64.cc | 44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction); 45 bool TryMergeIntoShifterOperand(HInstruction* use, 46 HInstruction* bitfield_op, 48 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand() 51 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand() 65 HInstruction* instruction = it.Current(); in VisitBasicBlock() 90 bool InstructionSimplifierArm64Visitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() 91 HInstruction* bitfield_op, in TryMergeIntoShifterOperand() 103 HInstruction* left; in TryMergeIntoShifterOperand() 104 HInstruction* right; in TryMergeIntoShifterOperand() [all …]
|