/art/compiler/optimizing/ |
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*));
|
instruction_simplifier_x86_shared.h | 25 bool AreLeastSetBitInputs(HInstruction* to_test, HInstruction* other);
|
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, 190 void GenerateVecInv(HInstruction* org, DataType::Type type) [all...] |
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** lower [all...] |
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* instruction [all...] |
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_;
|
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* phi, size_t input_index, size_t adjust_input_size) [all...] |
code_generator_utils.h | 26 class HInstruction; 35 bool IsBooleanValueOrMaterializedCondition(HInstruction* cond_input);
|
ssa_liveness_analysis_test.cc | 58 HInstruction* arg = new (GetAllocator()) HParameterValue( 63 HInstruction* ret = new (GetAllocator()) HReturn(arg); 78 HInstruction* array = new (GetAllocator()) HParameterValue( 80 HInstruction* index = new (GetAllocator()) HParameterValue( 82 HInstruction* value = new (GetAllocator()) HParameterValue( 84 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( 86 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( 88 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; 89 for (HInstruction* insn : args) { 94 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0) [all...] |
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*)) {
|
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_;
|
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);
|
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); }
|
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::kXor) << op [all...] |
scheduler.h | 37 // Currently, scheduling is performed at the block level, so no `HInstruction` 154 * A node representing an `HInstruction` in the `SchedulingGraph`. 158 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) 200 HInstruction* GetInstruction() const { return instruction_; } 226 HInstruction* const instruction_; 262 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) { 272 SchedulingNode* GetNode(const HInstruction* instr) const { 281 bool IsSchedulingBarrier(const HInstruction* instruction) const; 284 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* other) const [all...] |
instruction_simplifier_x86_shared.cc | 31 HInstruction* left = instruction->GetLeft(); 32 HInstruction* right = instruction->GetRight(); 38 HInstruction* other_ins = (left_is_not ? right : left); 67 HInstruction* candidate = nullptr; 68 HInstruction* other = nullptr; 69 HInstruction* left = instruction->GetLeft(); 70 HInstruction* right = instruction->GetRight(); 81 type, HInstruction::kAnd, other, instruction->GetDexPc()); 100 HInstruction* left = instruction->GetLeft(); 101 HInstruction* right = instruction->GetRight() [all...] |
code_sinking.cc | 37 HInstruction* last = exit_predecessor->GetLastInstruction(); 46 static bool IsInterestingInstruction(HInstruction* instruction) { 122 static void AddInstruction(HInstruction* instruction, 125 ScopedArenaVector<HInstruction*>* worklist) { 135 static void AddInputs(HInstruction* instruction, 138 ScopedArenaVector<HInstruction*>* worklist) { 139 for (HInstruction* input : instruction->GetInputs()) { 147 ScopedArenaVector<HInstruction*>* worklist) { 156 static bool ShouldFilterUse(HInstruction* instruction, 157 HInstruction* user [all...] |
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* compare = flag->GetNext() [all...] |
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 = 123 HInstruction* c1 = graph_->GetIntConstant(1) [all...] |
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_set1 [all...] |
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_left = binop->GetLeft() [all...] |
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* instruction) [all...] |
inliner.h | 90 HInstruction** return_replacement) 97 HInstruction** return_replacement); 108 HInstruction** return_replacement) 114 HInstruction* obj); 118 HInstruction* obj, 119 HInstruction* value, 192 void AddCHAGuard(HInstruction* invoke_instruction, 194 HInstruction* cursor, 198 HInstruction* receiver, 202 void FixUpReturnReferenceType(ArtMethod* resolved_method, HInstruction* return_replacement [all...] |
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_op [all...] |
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) { 50 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { 64 HInstruction* instruction = it.Current(); 71 // HInstruction visitors, sorted alphabetically. 88 bool InstructionSimplifierArm64Visitor::TryMergeIntoShifterOperand(HInstruction* use [all...] |