Home
last modified time | relevance | path

Searched refs:HInstruction (Results 1 – 25 of 118) sorted by relevance

12345

/art/compiler/optimizing/
Dloop_optimization.h101 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);
191 void GenerateVecSub(HInstruction* org, HInstruction* offset);
[all …]
Dinduction_var_range.h47 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 …]
Descape.h22 class HInstruction; variable
54 void CalculateEscape(HInstruction* reference,
55 bool (*no_escape)(HInstruction*, HInstruction*),
64 bool DoesNotEscape(HInstruction* reference, bool (*no_escape)(HInstruction*, HInstruction*));
Dinduction_var_analysis.h105 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 …]
Dssa_liveness_analysis_test.cc58 HInstruction* arg = new (GetAllocator()) HParameterValue( in TEST_F()
63 HInstruction* ret = new (GetAllocator()) HReturn(arg); in TEST_F()
78 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F()
80 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F()
82 HInstruction* value = new (GetAllocator()) HParameterValue( in TEST_F()
84 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( in TEST_F()
86 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( in TEST_F()
88 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; in TEST_F()
89 for (HInstruction* insn : args) { in TEST_F()
94 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0); in TEST_F()
[all …]
Dload_store_elimination.cc79 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 …]
Dscheduler.h158 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode()
200 HInstruction* GetInstruction() const { return instruction_; } in GetInstruction()
226 HInstruction* const instruction_;
262 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) {
272 SchedulingNode* GetNode(const HInstruction* instr) const { in GetNode()
281 bool IsSchedulingBarrier(const HInstruction* instruction) const;
284 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* other) const;
286 bool HasImmediateOtherDependency(const HInstruction* node, const HInstruction* other) const;
305 bool HasMemoryDependency(HInstruction* node, HInstruction* other) const;
306 bool HasExceptionDependency(const HInstruction* node, const HInstruction* other) const;
[all …]
Dnodes_shared.h31 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 …]
Dinduction_var_analysis_test.cc112 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 …]
Dregister_allocation_resolver.h29 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,
Dload_store_analysis_test.cc47 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()
123 HInstruction* c1 = graph_->GetIntConstant(1); in TEST_F()
[all …]
Dinstruction_simplifier_x86_shared.cc31 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 …]
Dcode_sinking.cc37 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 …]
Dbounds_check_elimination_test.cc70 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 …]
Dregister_allocator_graph_color.h32 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_;
Dinstruction_simplifier_shared.cc27 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 …]
Dinliner.h90 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 …]
Dscheduler_test.cc101 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 …]
Dnodes_vector.h125 bool InstructionDataEquals(const HInstruction* other) const override { in InstructionDataEquals()
166 static bool ReturnsSIMDValue(HInstruction* instruction) { in ReturnsSIMDValue()
184 static constexpr size_t kFieldPackedType = HInstruction::kNumberOfGenericPackedBits;
202 HInstruction* input, in HVecUnaryOperation()
216 HInstruction* GetInput() const { return InputAt(0); } in GetInput()
229 HInstruction* left, in HVecBinaryOperation()
230 HInstruction* right, in HVecBinaryOperation()
245 HInstruction* GetLeft() const { return InputAt(0); } in GetLeft()
246 HInstruction* GetRight() const { return InputAt(1); } in GetRight()
280 HInstruction* GetArray() const { return InputAt(0); } in GetArray()
[all …]
Descape.cc23 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
Dloop_optimization.cc54 static void RemoveFromCycle(HInstruction* instruction) { in RemoveFromCycle()
87 static bool IsZeroExtensionAndGet(HInstruction* instruction,
89 /*out*/ HInstruction** operand);
93 static bool IsSignExtensionAndGet(HInstruction* instruction, in IsSignExtensionAndGet()
95 /*out*/ HInstruction** operand) { in IsSignExtensionAndGet()
133 HInstruction* conv = instruction->InputAt(0); in IsSignExtensionAndGet()
158 static bool IsZeroExtensionAndGet(HInstruction* instruction, in IsZeroExtensionAndGet()
160 /*out*/ HInstruction** operand) { in IsZeroExtensionAndGet()
198 HInstruction* conv = instruction->InputAt(0); in IsZeroExtensionAndGet()
221 static bool IsNarrowerOperands(HInstruction* a, in IsNarrowerOperands()
[all …]
Dload_store_analysis.h30 ReferenceInfo(HInstruction* reference, size_t pos) in ReferenceInfo()
43 HInstruction* GetReference() const { in GetReference()
73 HInstruction* const reference_;
99 HInstruction* index, in HeapLocation()
123 HInstruction* GetIndex() const { return index_; } in GetIndex()
164 HInstruction* const index_;
220 HInstruction* HuntForOriginalReference(HInstruction* ref) const { in HuntForOriginalReference()
232 ReferenceInfo* FindReferenceInfoOf(HInstruction* ref) const { in FindReferenceInfoOf()
243 size_t GetFieldHeapLocation(HInstruction* object, const FieldInfo* field) const { in GetFieldHeapLocation()
254 size_t GetArrayHeapLocation(HInstruction* instruction) const { in GetArrayHeapLocation()
[all …]
Dinstruction_simplifier_shared.h26 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);
Dinstruction_simplifier_arm64.cc43 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 …]
Dinstruction_simplifier_arm.cc43 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 …]

12345