Home
last modified time | relevance | path

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

12345

/art/compiler/optimizing/
Dloop_optimization.h98 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* org, DataType::Type type);
164 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 …]
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 …]
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*));
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 …]
Dssa_liveness_analysis_test.cc68 HInstruction* arg = new (GetAllocator()) HParameterValue( in TEST_F()
73 HInstruction* ret = new (GetAllocator()) HReturn(arg); in TEST_F()
88 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F()
90 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F()
92 HInstruction* value = new (GetAllocator()) HParameterValue( in TEST_F()
94 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( in TEST_F()
96 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( in TEST_F()
98 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; in TEST_F()
99 for (HInstruction* insn : args) { in TEST_F()
104 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0); in TEST_F()
[all …]
Dscheduler.h159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode()
201 HInstruction* GetInstruction() const { return instruction_; } in GetInstruction()
227 HInstruction* const instruction_;
261 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) {
280 SchedulingNode* GetNode(const HInstruction* instr) const { in GetNode()
289 bool IsSchedulingBarrier(const HInstruction* instruction) const;
292 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* other) const;
294 bool HasImmediateOtherDependency(const HInstruction* node, const HInstruction* other) const;
313 bool HasMemoryDependency(const HInstruction* node, const HInstruction* other) const;
314 bool HasExceptionDependency(const HInstruction* node, const HInstruction* other) const;
[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 …]
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 …]
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()
119 HInstruction* c1 = graph_->GetIntConstant(1); in TEST_F()
[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,
Dcode_sinking.cc37 HInstruction* last = exit_predecessor->GetLastInstruction(); in Run()
45 static bool IsInterestingInstruction(HInstruction* instruction) { in IsInterestingInstruction()
121 static void AddInstruction(HInstruction* instruction, in AddInstruction()
124 ScopedArenaVector<HInstruction*>* worklist) { in AddInstruction()
134 static void AddInputs(HInstruction* instruction, in AddInputs()
137 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs()
138 for (HInstruction* input : instruction->GetInputs()) { in AddInputs()
146 ScopedArenaVector<HInstruction*>* worklist) { in AddInputs()
155 static bool ShouldFilterUse(HInstruction* instruction, in ShouldFilterUse()
156 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 …]
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 …]
Dload_store_analysis.h30 ReferenceInfo(HInstruction* reference, size_t pos) in ReferenceInfo()
43 HInstruction* GetReference() const { in GetReference()
73 HInstruction* const reference_;
98 HInstruction* index, in HeapLocation()
120 HInstruction* GetIndex() const { return index_; } in GetIndex()
157 HInstruction* const index_;
213 HInstruction* HuntForOriginalReference(HInstruction* ref) const { in HuntForOriginalReference()
225 ReferenceInfo* FindReferenceInfoOf(HInstruction* ref) const { in FindReferenceInfoOf()
236 size_t GetFieldHeapLocation(HInstruction* object, const FieldInfo* field) const { in GetFieldHeapLocation()
246 size_t GetArrayHeapLocation(HInstruction* array,
[all …]
Dloop_optimization.cc57 static void RemoveFromCycle(HInstruction* instruction) { in RemoveFromCycle()
90 static bool IsZeroExtensionAndGet(HInstruction* instruction,
92 /*out*/ HInstruction** operand);
96 static bool IsSignExtensionAndGet(HInstruction* instruction, in IsSignExtensionAndGet()
98 /*out*/ HInstruction** operand) { in IsSignExtensionAndGet()
136 HInstruction* conv = instruction->InputAt(0); in IsSignExtensionAndGet()
161 static bool IsZeroExtensionAndGet(HInstruction* instruction, in IsZeroExtensionAndGet()
163 /*out*/ HInstruction** operand) { in IsZeroExtensionAndGet()
201 HInstruction* conv = instruction->InputAt(0); in IsZeroExtensionAndGet()
224 static bool IsNarrowerOperands(HInstruction* a, in IsNarrowerOperands()
[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_;
Dinliner.h93 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_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.h129 bool InstructionDataEquals(const HInstruction* other) const OVERRIDE { in InstructionDataEquals()
170 static bool ReturnsSIMDValue(HInstruction* instruction) { in ReturnsSIMDValue()
188 static constexpr size_t kFieldType = HInstruction::kNumberOfGenericPackedBits;
206 HInstruction* input, in HVecUnaryOperation()
220 HInstruction* GetInput() const { return InputAt(0); } in GetInput()
233 HInstruction* left, in HVecBinaryOperation()
234 HInstruction* right, in HVecBinaryOperation()
249 HInstruction* GetLeft() const { return InputAt(0); } in GetLeft()
250 HInstruction* GetRight() const { return InputAt(1); } in GetRight()
284 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
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 …]
Dscheduler.cc73 size_t SchedulingGraph::ArrayAccessHeapLocation(HInstruction* array, HInstruction* index) const { in ArrayAccessHeapLocation()
81 bool SchedulingGraph::ArrayAccessMayAlias(const HInstruction* node, in ArrayAccessMayAlias()
82 const HInstruction* other) const { in ArrayAccessMayAlias()
100 static bool IsArrayAccess(const HInstruction* instruction) { in IsArrayAccess()
104 static bool IsInstanceFieldAccess(const HInstruction* instruction) { in IsInstanceFieldAccess()
111 static bool IsStaticFieldAccess(const HInstruction* instruction) { in IsStaticFieldAccess()
118 static bool IsResolvedFieldAccess(const HInstruction* instruction) { in IsResolvedFieldAccess()
125 static bool IsUnresolvedFieldAccess(const HInstruction* instruction) { in IsUnresolvedFieldAccess()
132 static bool IsFieldAccess(const HInstruction* instruction) { in IsFieldAccess()
136 static const FieldInfo* GetFieldInfo(const HInstruction* instruction) { in GetFieldInfo()
[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);

12345