/art/compiler/optimizing/ |
H A D | escape.h | 22 class HInstruction; 54 void CalculateEscape(HInstruction* reference, 55 bool (*no_escape)(HInstruction*, HInstruction*), 64 bool DoesNotEscape(HInstruction* reference, bool (*no_escape)(HInstruction*, HInstruction*));
|
H A D | induction_var_range.h | 47 Value(HInstruction* i, int32_t a, int32_t b) 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** lowe [all...] |
H A D | register_allocation_resolver.h | 29 class HInstruction; 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* instructio [all...] |
H A 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* or [all...] |
H A D | register_allocator_graph_color.h | 32 class HInstruction; 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_;
|
H A D | induction_var_analysis.h | 105 HInstruction* f, 117 HInstruction* fetch; 121 bool IsVisitedNode(HInstruction* instruction) const { 130 InductionInfo* CreateInvariantFetch(HInstruction* f) { 148 HInstruction* f, 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* ph [all...] |
H A D | code_generator_utils.h | 26 class HInstruction; 35 bool IsBooleanValueOrMaterializedCondition(HInstruction* cond_input);
|
H A D | escape.cc | 23 void CalculateEscape(HInstruction* reference, 24 bool (*no_escape)(HInstruction*, HInstruction*), 47 for (const HUseListNode<HInstruction*>& use : reference->GetUses()) { 48 HInstruction* user = use.GetUser(); 99 bool DoesNotEscape(HInstruction* reference, bool (*no_escape)(HInstruction*, HInstruction*)) {
|
H A D | scheduler.h | 38 // Currently, scheduling is performed at the block level, so no `HInstruction` 155 * A node representing an `HInstruction` in the `SchedulingGraph`. 159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) 201 HInstruction* GetInstruction() const { return instruction_; } 227 HInstruction* const instruction_; 261 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) { 280 SchedulingNode* GetNode(const HInstruction* instr) const { 289 bool IsSchedulingBarrier(const HInstruction* instruction) const; 292 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* othe [all...] |
H A D | instruction_simplifier_shared.h | 26 inline bool CanFitInShifterOperand(HInstruction* instruction) { 41 inline bool HasShifterOperand(HInstruction* instr, InstructionSet isa) { 57 bool TryExtractArrayAccessAddress(HInstruction* access, 58 HInstruction* array, 59 HInstruction* index, 62 bool TryExtractVecArrayAccessAddress(HVecMemoryOperation* access, HInstruction* index);
|
H A D | nodes_mips.h | 46 HInstruction* input, 96 HIntermediateArrayAddressIndex(HInstruction* index, HInstruction* shift, uint32_t dex_pc) 106 bool InstructionDataEquals(const HInstruction* other ATTRIBUTE_UNUSED) const OVERRIDE { 111 HInstruction* GetIndex() const { return InputAt(0); } 112 HInstruction* GetShift() const { return InputAt(1); }
|
H A D | nodes_shared.h | 22 // (defining `HInstruction` and co). 31 HInstruction* accumulator, 32 HInstruction* mul_left, 33 HInstruction* mul_right, 49 bool InstructionDataEquals(const HInstruction* other) const OVERRIDE { 69 HInstruction* left, 70 HInstruction* right, 79 DCHECK(op == HInstruction::kAnd || op == HInstruction::kOr || op == HInstruction [all...] |
H A D | ssa_liveness_analysis_test.cc | 68 HInstruction* arg = new (GetAllocator()) HParameterValue( 73 HInstruction* ret = new (GetAllocator()) HReturn(arg); 88 HInstruction* array = new (GetAllocator()) HParameterValue( 90 HInstruction* index = new (GetAllocator()) HParameterValue( 92 HInstruction* value = new (GetAllocator()) HParameterValue( 94 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( 96 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( 98 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; 99 for (HInstruction* insn : args) { 104 HInstruction* null_chec [all...] |
H A D | code_sinking.cc | 37 HInstruction* last = exit_predecessor->GetLastInstruction(); 45 static bool IsInterestingInstruction(HInstruction* instruction) { 121 static void AddInstruction(HInstruction* instruction, 124 ScopedArenaVector<HInstruction*>* worklist) { 134 static void AddInputs(HInstruction* instruction, 137 ScopedArenaVector<HInstruction*>* worklist) { 138 for (HInstruction* input : instruction->GetInputs()) { 146 ScopedArenaVector<HInstruction*>* worklist) { 155 static bool ShouldFilterUse(HInstruction* instruction, 156 HInstruction* use [all...] |
H A 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. 121 HTypeConversion* AddTypeConversionIfNecessary(HInstruction* instruction, 122 HInstruction* value, 137 HInstruction* FindSubstitute(HInstruction* instruction) { 144 HInstruction* substitut [all...] |
H A 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(); 92 HInstruction* deopt = compare->GetNext(); 106 HInstruction* receiver) { 123 HInstruction* receiver) { 149 HInstruction* instruction; 175 HInstruction* receiver) { 186 HInstruction* compar [all...] |
H A D | load_store_analysis_test.cc | 47 HInstruction* array = new (GetAllocator()) HParameterValue( 49 HInstruction* index = new (GetAllocator()) HParameterValue( 51 HInstruction* c1 = graph_->GetIntConstant(1); 52 HInstruction* c2 = graph_->GetIntConstant(2); 53 HInstruction* c3 = graph_->GetIntConstant(3); 54 HInstruction* array_get1 = new (GetAllocator()) HArrayGet(array, c1, DataType::Type::kInt32, 0); 55 HInstruction* array_get2 = new (GetAllocator()) HArrayGet(array, c2, DataType::Type::kInt32, 0); 56 HInstruction* array_set1 = 58 HInstruction* array_set2 = 119 HInstruction* c [all...] |
H A D | scheduler_test.cc | 101 HInstruction* array = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), 105 HInstruction* c1 = graph_->GetIntConstant(1); 106 HInstruction* c2 = graph_->GetIntConstant(10); 107 HInstruction* add1 = new (GetAllocator()) HAdd(DataType::Type::kInt32, c1, c2); 108 HInstruction* add2 = new (GetAllocator()) HAdd(DataType::Type::kInt32, add1, c2); 109 HInstruction* mul = new (GetAllocator()) HMul(DataType::Type::kInt32, add1, add2); 110 HInstruction* div_check = new (GetAllocator()) HDivZeroCheck(add2, 0); 111 HInstruction* div = new (GetAllocator()) HDiv(DataType::Type::kInt32, add1, div_check, 0); 112 HInstruction* array_get1 = 114 HInstruction* array_set [all...] |
H A D | load_store_analysis.h | 30 ReferenceInfo(HInstruction* reference, size_t pos) 43 HInstruction* GetReference() const { 73 HInstruction* const reference_; 98 HInstruction* index, 120 HInstruction* GetIndex() const { return index_; } 157 HInstruction* const index_; 213 HInstruction* HuntForOriginalReference(HInstruction* ref) const { 216 // i1 HInstruction(i0) <-- NullCheck, BoundType, IntermediateAddress. 225 ReferenceInfo* FindReferenceInfoOf(HInstruction* re [all...] |
H A D | instruction_simplifier_shared.cc | 27 HInstruction* input_other) { 39 HInstruction* input_a = input_other; 40 HInstruction* input_b = nullptr; // Set to a non-null value if we found a pattern to optimize. 41 HInstruction::InstructionKind op_kind; 50 op_kind = HInstruction::kAdd; 61 op_kind = HInstruction::kAdd; 69 op_kind = HInstruction::kSub; 111 HInstruction* use = mul->GetUses().front().GetUser(); 124 HInstruction* accumulator = nullptr; 126 HInstruction* binop_lef [all...] |
H A D | prepare_for_register_allocation.h | 54 bool CanMoveClinitCheck(HInstruction* input, HInstruction* user) const; 55 bool CanEmitConditionAt(HCondition* condition, HInstruction* user) const;
|
H A D | graph_visualizer.h | 31 class HInstruction; 59 instruction_intervals_(std::less<const HInstruction*>(), allocator->Adapter()), 66 void AddInstructionInterval(HInstruction* instr, size_t start, size_t end) { 82 const ArenaSafeMap<const HInstruction*, GeneratedCodeInterval>& GetInstructionIntervals() const { 86 ArenaSafeMap<const HInstruction*, GeneratedCodeInterval>* GetInstructionIntervals() { 96 ArenaSafeMap<const HInstruction*, GeneratedCodeInterval> instruction_intervals_;
|
H A D | induction_var_analysis_test.cc | 112 HInstruction* compare = new (GetAllocator()) HLessThan(basic_[d], constant100_); 148 HInstruction* InsertInstruction(HInstruction* instruction, int d) { 162 HInstruction* InsertArrayStore(HInstruction* subscript, int d) { 170 std::string GetInductionInfo(HInstruction* instruction, int d) { 177 HInstruction* control = loop_header_[d]->GetLastInstruction(); 183 bool HaveSameInduction(HInstruction* instruction1, HInstruction* instruction2) { 190 bool IsNarrowingLinear(HInstruction* instructio [all...] |
H A 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_replacemen [all...] |
H A 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) { 48 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { 62 HInstruction* instruction = it.Current(); 82 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use, 83 HInstruction* bitfield_o [all...] |