/art/compiler/optimizing/ |
D | induction_var_range.h | 46 Value(HInstruction* i, int32_t a, int32_t b) in Value() 50 HInstruction* instruction; 65 bool GetInductionRange(HInstruction* context, 66 HInstruction* instruction, 81 bool CanGenerateCode(HInstruction* context, 82 HInstruction* instruction, 101 void GenerateRangeCode(HInstruction* context, 102 HInstruction* instruction, 105 /*out*/ HInstruction** lower, 106 /*out*/ HInstruction** upper); [all …]
|
D | induction_var_analysis_test.cc | 97 HInstruction* compare = new (&allocator_) HLessThan(basic_[d], constant100_); in BuildLoopNest() 133 HInstruction* InsertInstruction(HInstruction* instruction, int d) { in InsertInstruction() 147 HInstruction* InsertArrayStore(HInstruction* subscript, int d) { in InsertArrayStore() 155 std::string GetInductionInfo(HInstruction* instruction, int d) { in GetInductionInfo() 161 bool HaveSameInduction(HInstruction* instruction1, HInstruction* instruction2) { in HaveSameInduction() 184 HInstruction* parameter_; // "this" 185 HInstruction* constant0_; 186 HInstruction* constant1_; 187 HInstruction* constant100_; 188 HInstruction* float_constant0_; [all …]
|
D | instruction_simplifier_shared.cc | 25 HInstruction* input_other) { in TrySimpleMultiplyAccumulatePatterns() 37 HInstruction* input_a = input_other; in TrySimpleMultiplyAccumulatePatterns() 38 HInstruction* input_b = nullptr; // Set to a non-null value if we found a pattern to optimize. in TrySimpleMultiplyAccumulatePatterns() 39 HInstruction::InstructionKind op_kind; in TrySimpleMultiplyAccumulatePatterns() 48 op_kind = HInstruction::kAdd; in TrySimpleMultiplyAccumulatePatterns() 59 op_kind = HInstruction::kAdd; in TrySimpleMultiplyAccumulatePatterns() 67 op_kind = HInstruction::kSub; in TrySimpleMultiplyAccumulatePatterns() 109 HInstruction* use = mul->GetUses().front().GetUser(); in TryCombineMultiplyAccumulate() 122 HInstruction* accumulator = nullptr; in TryCombineMultiplyAccumulate() 124 HInstruction* binop_left = binop->GetLeft(); in TryCombineMultiplyAccumulate() [all …]
|
D | load_store_elimination.cc | 34 ReferenceInfo(HInstruction* reference, size_t pos) : reference_(reference), position_(pos) { in ReferenceInfo() 46 for (const HUseListNode<HInstruction*>& use : reference_->GetUses()) { in ReferenceInfo() 47 HInstruction* user = use.GetUser(); in ReferenceInfo() 84 HInstruction* GetReference() const { in GetReference() 106 HInstruction* const reference_; 125 HInstruction* index, in HeapLocation() 144 HInstruction* GetIndex() const { return index_; } in GetIndex() 167 HInstruction* const index_; // index of an array element. 176 static HInstruction* HuntForOriginalReference(HInstruction* ref) { in HuntForOriginalReference() 214 ReferenceInfo* FindReferenceInfoOf(HInstruction* ref) const { in FindReferenceInfoOf() [all …]
|
D | bounds_check_elimination_test.cc | 72 HInstruction* parameter1 = new (&allocator_) in TEST_F() 74 HInstruction* parameter2 = new (&allocator_) in TEST_F() 79 HInstruction* constant_1 = graph_->GetIntConstant(1); in TEST_F() 80 HInstruction* constant_0 = graph_->GetIntConstant(0); in TEST_F() 84 HInstruction* cmp = new (&allocator_) HGreaterThanOrEqual(parameter2, constant_0); in TEST_F() 169 HInstruction* parameter1 = new (&allocator_) in TEST_F() 171 HInstruction* parameter2 = new (&allocator_) in TEST_F() 176 HInstruction* constant_1 = graph_->GetIntConstant(1); in TEST_F() 177 HInstruction* constant_0 = graph_->GetIntConstant(0); in TEST_F() 178 HInstruction* constant_max_int = graph_->GetIntConstant(INT_MAX); in TEST_F() [all …]
|
D | inliner.h | 71 HInstruction** return_replacement) 77 HInstruction** return_replacement); 88 HInstruction** return_replacement) 94 HInstruction* obj); 98 HInstruction* obj, 99 HInstruction* value); 123 HInstruction* receiver, 129 HInstruction* return_replacement, 142 HInstruction* AddTypeGuard(HInstruction* receiver, 143 HInstruction* cursor, [all …]
|
D | instruction_simplifier_arm64.h | 38 void TryExtractArrayAccessAddress(HInstruction* access, 39 HInstruction* array, 40 HInstruction* index, 42 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction); 43 bool TryMergeIntoShifterOperand(HInstruction* use, 44 HInstruction* bitfield_op, 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()
|
D | induction_var_analysis.h | 100 HInstruction* f, in InductionInfo() 112 HInstruction* fetch; 116 bool IsVisitedNode(HInstruction* instruction) const { in IsVisitedNode() 125 InductionInfo* CreateInvariantFetch(HInstruction* f) { in CreateInvariantFetch() 149 void VisitNode(HLoopInformation* loop, HInstruction* instruction); 150 uint32_t VisitDescendant(HLoopInformation* loop, HInstruction* instruction); 151 void ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction); 156 InductionInfo* TransferPhi(HLoopInformation* loop, HInstruction* phi, size_t input_index); 164 InductionInfo* SolvePhi(HInstruction* phi, size_t input_index); 166 HInstruction* entry_phi, [all …]
|
D | nodes_shared.h | 26 HInstruction* accumulator, 27 HInstruction* mul_left, 28 HInstruction* mul_right, 41 bool InstructionDataEquals(HInstruction* other) const OVERRIDE { in InstructionDataEquals() 60 HInstruction* left, 61 HInstruction* right, 65 DCHECK(op == HInstruction::kAnd || op == HInstruction::kOr || op == HInstruction::kXor) << op; in HBinaryOperation() 74 case HInstruction::kAnd: 76 case HInstruction::kOr: 78 case HInstruction::kXor:
|
D | nodes_arm64.h | 43 HArm64DataProcWithShifterOp(HInstruction* instr, 44 HInstruction* left, 45 HInstruction* right, 59 bool InstructionDataEquals(HInstruction* other_instr) const OVERRIDE { in InstructionDataEquals() 75 static void GetOpInfoFromInstruction(HInstruction* bitfield_op, 102 HArm64IntermediateAddress(HInstruction* base_address, HInstruction* offset, uint32_t dex_pc) in HArm64IntermediateAddress() 109 bool InstructionDataEquals(HInstruction* other ATTRIBUTE_UNUSED) const OVERRIDE { return true; } in InstructionDataEquals() 112 HInstruction* GetBaseAddress() const { return InputAt(0); } in GetBaseAddress() 113 HInstruction* GetOffset() const { return InputAt(1); } in GetOffset()
|
D | instruction_simplifier_arm64.cc | 30 void InstructionSimplifierArm64Visitor::TryExtractArrayAccessAddress(HInstruction* access, in TryExtractArrayAccessAddress() 31 HInstruction* array, in TryExtractArrayAccessAddress() 32 HInstruction* index, in TryExtractArrayAccessAddress() 81 bool InstructionSimplifierArm64Visitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() 82 HInstruction* bitfield_op, in TryMergeIntoShifterOperand() 94 HInstruction* left; in TryMergeIntoShifterOperand() 95 HInstruction* right; in TryMergeIntoShifterOperand() 114 HInstruction* other_input; in TryMergeIntoShifterOperand() 153 bool InstructionSimplifierArm64Visitor::TryMergeIntoUsersShifterOperand(HInstruction* bitfield_op) { in TryMergeIntoUsersShifterOperand() 160 const HUseList<HInstruction*>& uses = bitfield_op->GetUses(); in TryMergeIntoUsersShifterOperand() [all …]
|
D | bounds_check_elimination.cc | 36 ValueBound(HInstruction* instruction, int32_t constant) { in ValueBound() 67 static bool IsAddOrSubAConstant(HInstruction* instruction, in IsAddOrSubAConstant() 68 /* out */ HInstruction** left_instruction, in IsAddOrSubAConstant() 70 HInstruction* left_so_far = nullptr; in IsAddOrSubAConstant() 74 HInstruction* left = bin_op->GetLeft(); in IsAddOrSubAConstant() 75 HInstruction* right = bin_op->GetRight(); in IsAddOrSubAConstant() 95 static ValueBound AsValueBound(HInstruction* instruction) { in AsValueBound() 99 HInstruction *left; in AsValueBound() 109 static ValueBound DetectValueBoundFromValue(HInstruction* instruction, /* out */ bool* found) { in DetectValueBoundFromValue() 121 HInstruction *left; in DetectValueBoundFromValue() [all …]
|
D | instruction_simplifier.cc | 96 bool CanEnsureNotNullAt(HInstruction* instr, HInstruction* at) const; 185 HInstruction* left = op->GetLeft(); in TryDeMorganNegationFactoring() 186 HInstruction* right = op->GetRight(); in TryDeMorganNegationFactoring() 201 HInstruction* src_left = left->InputAt(0); in TryDeMorganNegationFactoring() 202 HInstruction* src_right = right->InputAt(0); in TryDeMorganNegationFactoring() 218 HInstruction* hnot; in TryDeMorganNegationFactoring() 238 HInstruction* input_other = instruction->GetLeastConstantLeft(); in VisitShift() 256 static bool IsSubRegBitsMinusOther(HSub* sub, size_t reg_bits, HInstruction* other) { in IsSubRegBitsMinusOther() 286 HInstruction* left = op->GetLeft(); in TryReplaceWithRotate() 287 HInstruction* right = op->GetRight(); in TryReplaceWithRotate() [all …]
|
D | nodes.h | 51 class HInstruction; variable 115 void AddInstruction(HInstruction* instruction); 116 void RemoveInstruction(HInstruction* instruction); 119 void InsertInstructionBefore(HInstruction* instruction, HInstruction* cursor); 120 void InsertInstructionAfter(HInstruction* instruction, HInstruction* cursor); 123 bool Contains(HInstruction* instruction) const; 128 bool FoundBefore(const HInstruction* instruction1, 129 const HInstruction* instruction2) const; 137 void AddAfter(HInstruction* cursor, const HInstructionList& instruction_list); 138 void AddBefore(HInstruction* cursor, const HInstructionList& instruction_list); [all …]
|
D | register_allocator.h | 30 class HInstruction; variable 123 HInstruction* instruction, 127 HInstruction* instruction, 130 void InsertMoveAfter(HInstruction* instruction, Location source, Location destination) const; 131 void AddInputMoveFor(HInstruction* input, 132 HInstruction* user, 136 HInstruction* instruction, 143 HInstruction* instruction, 148 void ProcessInstruction(HInstruction* instruction); 213 ArenaVector<HInstruction*> safepoints_;
|
D | licm_test.cc | 98 HInstruction* parameter_; // "this" 99 HInstruction* int_constant_; 100 HInstruction* float_constant_; 112 HInstruction* get_field = new (&allocator_) HInstanceFieldGet(parameter_, in TEST_F() 122 HInstruction* set_field = new (&allocator_) HInstanceFieldSet( in TEST_F() 139 HInstruction* get_field = new (&allocator_) HInstanceFieldGet(parameter_, in TEST_F() 149 HInstruction* set_field = new (&allocator_) HInstanceFieldSet(parameter_, in TEST_F() 174 HInstruction* get_array = new (&allocator_) HArrayGet( in TEST_F() 177 HInstruction* set_array = new (&allocator_) HArraySet( in TEST_F() 194 HInstruction* get_array = new (&allocator_) HArrayGet( in TEST_F() [all …]
|
D | prepare_for_register_allocation.cc | 51 HInstruction* value = instruction->GetValue(); in VisitArraySet() 65 HInstruction* implicit_clinit = nullptr; in VisitClinitCheck() 66 for (const HUseListNode<HInstruction*>& use : check->GetUses()) { in VisitClinitCheck() 67 HInstruction* user = use.GetUser(); in VisitClinitCheck() 88 const HUseList<HInstruction*>& uses = check->GetUses(); in VisitClinitCheck() 90 HInstruction* user = it->GetUser(); in VisitClinitCheck() 149 HInstruction* user) const { in CanEmitConditionAt() 167 HInstruction* user = condition->GetUses().front().GetUser(); in VisitCondition() 191 bool PrepareForRegisterAllocation::CanMoveClinitCheck(HInstruction* input, in CanMoveClinitCheck() 192 HInstruction* user) const { in CanMoveClinitCheck() [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 | reference_type_propagation.h | 41 void Visit(HInstruction* instruction); 80 void AddToWorklist(HInstruction* instr); 81 void AddDependentInstructionsToWorklist(HInstruction* instr); 83 bool UpdateNullability(HInstruction* instr); 84 bool UpdateReferenceTypeInfo(HInstruction* instr); 100 ArenaVector<HInstruction*> worklist_;
|
D | nodes.cc | 91 static void RemoveEnvironmentUses(HInstruction* instruction) { in RemoveEnvironmentUses() 103 static void RemoveAsUser(HInstruction* instruction) { in RemoveAsUser() 203 HInstruction* HBasicBlock::GetFirstInstructionDisregardMoves() const { in GetFirstInstructionDisregardMoves() 204 HInstruction* instruction = GetFirstInstruction(); in GetFirstInstructionDisregardMoves() 371 HInstruction* first_instruction = header->GetFirstInstruction(); in SimplifyLoop() 484 HInstruction* insert_before = nullptr; in InsertConstant() 486 HInstruction* gota = entry_block_->GetLastInstruction(); in InsertConstant() 488 HInstruction* suspend_check = gota->GetPrevious(); in InsertConstant() 715 bool HLoopInformation::IsDefinedOutOfTheLoop(HInstruction* instruction) const { in IsDefinedOutOfTheLoop() 759 static void UpdateInputsUsers(HInstruction* instruction) { in UpdateInputsUsers() [all …]
|
D | nodes_test.cc | 37 HInstruction* parameter = new (&allocator) HParameterValue( in TEST() 45 HInstruction* null_check = new (&allocator) HNullCheck(parameter, 0); in TEST() 80 HInstruction* parameter1 = new (&allocator) HParameterValue( in TEST() 82 HInstruction* parameter2 = new (&allocator) HParameterValue( in TEST() 90 HInstruction* to_insert = new (&allocator) HNullCheck(parameter1, 0); in TEST() 108 HInstruction* parameter = new (&allocator) HParameterValue( in TEST() 114 HInstruction* to_add = new (&allocator) HNullCheck(parameter, 0); in TEST() 129 HInstruction* parameter1 = new (&allocator) HParameterValue( in TEST() 131 HInstruction* with_environment = new (&allocator) HNullCheck(parameter1, 0); in TEST() 141 ArenaVector<HInstruction*> array(allocator.Adapter()); in TEST()
|
D | reference_type_propagation.cc | 77 ArenaVector<HInstruction*>* worklist, in RTPVisitor() 92 void UpdateFieldAccessTypeInfo(HInstruction* instr, const FieldInfo& info); 93 void SetClassAsTypeInfo(HInstruction* instr, mirror::Class* klass, bool is_exact) 104 void UpdateReferenceTypeInfo(HInstruction* instr, 112 ArenaVector<HInstruction*>* worklist_; 135 HInstruction* instr = iti.Current(); in ValidateTypes() 156 void ReferenceTypePropagation::Visit(HInstruction* instruction) { in Visit() 184 HInstruction* instr = it.Current(); in VisitBasicBlock() 198 static bool ShouldCreateBoundType(HInstruction* position, in ShouldCreateBoundType() 199 HInstruction* obj, in ShouldCreateBoundType() [all …]
|
D | ssa_builder.cc | 30 HInstruction* equality_instr = it.Current(); in FixNullConstantType() 34 HInstruction* left = equality_instr->InputAt(0); in FixNullConstantType() 35 HInstruction* right = equality_instr->InputAt(1); in FixNullConstantType() 36 HInstruction* int_operand = nullptr; in FixNullConstantType() 88 HInstruction* next = phi->GetNext(); in FixEnvironmentPhis() 104 static void AddDependentInstructionsToWorklist(HInstruction* instruction, in AddDependentInstructionsToWorklist() 111 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in AddDependentInstructionsToWorklist() 112 HInstruction* user = use.GetUser(); in AddDependentInstructionsToWorklist() 127 HInstruction* input = it.Current(); in TypePhiFromInputs() 173 HInstruction* input = phi->InputAt(i); in TypeInputsOfPhi() [all …]
|
D | locations.cc | 24 LocationSummary::LocationSummary(HInstruction* instruction, in LocationSummary() 45 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant() 51 Location Location::RegisterOrInt32Constant(HInstruction* instruction) { in RegisterOrInt32Constant() 62 Location Location::FpuRegisterOrInt32Constant(HInstruction* instruction) { in FpuRegisterOrInt32Constant() 73 Location Location::ByteRegisterOrConstant(int reg, HInstruction* instruction) { in ByteRegisterOrConstant() 79 Location Location::FpuRegisterOrConstant(HInstruction* instruction) { in FpuRegisterOrConstant()
|
D | ssa_phi_elimination.cc | 47 for (const HUseListNode<HInstruction*>& use : phi->GetUses()) { in MarkDeadPhis() 89 HInstruction* current = block->GetFirstPhi(); in EliminateDeadPhis() 90 HInstruction* next = nullptr; in EliminateDeadPhis() 98 for (const HUseListNode<HInstruction*>& use : phi->GetUses()) { in EliminateDeadPhis() 99 HInstruction* user = use.GetUser(); in EliminateDeadPhis() 152 HInstruction* candidate = nullptr; in Run() 163 HInstruction* input = phi->InputAt(j); in Run() 185 HInstruction* input = current->InputAt(j); in Run() 238 for (const HUseListNode<HInstruction*>& use : current->GetUses()) { in Run() 239 HInstruction* user = use.GetUser(); in Run()
|