Home
last modified time | relevance | path

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

12345

/art/compiler/optimizing/
Dload_store_elimination_test.cc42 HInstruction* c1 = graph_->GetIntConstant(1); in CreateEntryBlockInstructions()
43 HInstruction* c4 = graph_->GetIntConstant(4); in CreateEntryBlockInstructions()
71 HInstruction* c0 = graph_->GetIntConstant(0); in CreateTestControlFlowGraph()
72 HInstruction* c1 = graph_->GetIntConstant(1); in CreateTestControlFlowGraph()
73 HInstruction* c128 = graph_->GetIntConstant(128); in CreateTestControlFlowGraph()
89 HInstruction* inc_phi = new (GetAllocator()) HAdd(DataType::Type::kInt32, phi_, c1); in CreateTestControlFlowGraph()
90 HInstruction* cmp = new (GetAllocator()) HGreaterThanOrEqual(phi_, c128); in CreateTestControlFlowGraph()
91 HInstruction* hif = new (GetAllocator()) HIf(cmp); in CreateTestControlFlowGraph()
102 ArenaVector<HInstruction*> current_locals({array_, i_, j_}, in CreateEnvForSuspendCheck()
129 HInstruction* cmp = new (GetAllocator()) HGreaterThanOrEqual(i_, j_); in CreateDiamondShapedCFG()
[all …]
Dloop_analysis.cc52 HInstruction* instruction = it.Current(); in CalculateLoopBasicProperties()
187 uint32_t GetMachineInstructionCount(HInstruction* inst) const { in GetMachineInstructionCount()
189 case HInstruction::InstructionKind::kAbs: in GetMachineInstructionCount()
191 case HInstruction::InstructionKind::kAdd: in GetMachineInstructionCount()
193 case HInstruction::InstructionKind::kAnd: in GetMachineInstructionCount()
195 case HInstruction::InstructionKind::kArrayLength: in GetMachineInstructionCount()
197 case HInstruction::InstructionKind::kArrayGet: in GetMachineInstructionCount()
199 case HInstruction::InstructionKind::kArraySet: in GetMachineInstructionCount()
201 case HInstruction::InstructionKind::kBoundsCheck: in GetMachineInstructionCount()
203 case HInstruction::InstructionKind::kCheckCast: in GetMachineInstructionCount()
[all …]
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,
198 void GenerateVecInv(HInstruction* org, DataType::Type type);
199 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.cc60 HInstruction* arg = new (GetAllocator()) HParameterValue( in TEST_F()
65 HInstruction* ret = new (GetAllocator()) HReturn(arg); in TEST_F()
80 HInstruction* array = new (GetAllocator()) HParameterValue( in TEST_F()
82 HInstruction* index = new (GetAllocator()) HParameterValue( in TEST_F()
84 HInstruction* value = new (GetAllocator()) HParameterValue( in TEST_F()
86 HInstruction* extra_arg1 = new (GetAllocator()) HParameterValue( in TEST_F()
88 HInstruction* extra_arg2 = new (GetAllocator()) HParameterValue( in TEST_F()
90 HInstruction* const args[] = { array, index, value, extra_arg1, extra_arg2 }; in TEST_F()
91 for (HInstruction* insn : args) { in TEST_F()
96 HInstruction* null_check = new (GetAllocator()) HNullCheck(array, 0); in TEST_F()
[all …]
Dload_store_elimination.cc78 static HInstruction* const kUnknownHeapValue =
79 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-1));
83 static HInstruction* const kDefaultHeapValue =
84 reinterpret_cast<HInstruction*>(static_cast<uintptr_t>(-2));
98 ScopedArenaVector<HInstruction*>(heap_locations_collector. in LSEVisitor()
120 HTypeConversion* FindOrAddTypeConversionIfNecessary(HInstruction* instruction, in FindOrAddTypeConversionIfNecessary()
121 HInstruction* value, in FindOrAddTypeConversionIfNecessary()
133 for (const HUseListNode<HInstruction*>& use : value->GetUses()) { in FindOrAddTypeConversionIfNecessary()
162 HInstruction* FindSubstitute(HInstruction* instruction) { in FindSubstitute()
169 HInstruction* substitute = substitute_instructions_for_loads_[i]; in FindSubstitute()
[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 …]
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_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()
126 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,
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 …]
Dscheduler.h159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode()
211 HInstruction* GetInstruction() const { return instruction_; } in GetInstruction()
245 HInstruction* const instruction_;
276 bool HasSideEffectDependency(HInstruction* instr1, HInstruction* instr2) const { in HasSideEffectDependency()
292 static bool HasExceptionDependency(const HInstruction* instr1, const HInstruction* instr2);
293 static bool HasReorderingDependency(const HInstruction* instr1, const HInstruction* instr2);
304 bool HasMemoryDependency(HInstruction* instr1, HInstruction* instr2) const;
307 bool ArrayAccessMayAlias(HInstruction* instr1, HInstruction* instr2) const;
308 bool FieldAccessMayAlias(const HInstruction* instr1, const HInstruction* instr2) const;
309 size_t ArrayAccessHeapLocation(HInstruction* instruction) const;
[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 …]
Dscheduler_test.cc95 HInstruction* array = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in TestBuildDependencyGraphAndSchedule()
99 HInstruction* c1 = graph_->GetIntConstant(1); in TestBuildDependencyGraphAndSchedule()
100 HInstruction* c2 = graph_->GetIntConstant(10); in TestBuildDependencyGraphAndSchedule()
101 HInstruction* add1 = new (GetAllocator()) HAdd(DataType::Type::kInt32, c1, c2); in TestBuildDependencyGraphAndSchedule()
102 HInstruction* add2 = new (GetAllocator()) HAdd(DataType::Type::kInt32, add1, c2); in TestBuildDependencyGraphAndSchedule()
103 HInstruction* mul = new (GetAllocator()) HMul(DataType::Type::kInt32, add1, add2); in TestBuildDependencyGraphAndSchedule()
104 HInstruction* div_check = new (GetAllocator()) HDivZeroCheck(add2, 0); in TestBuildDependencyGraphAndSchedule()
105 HInstruction* div = new (GetAllocator()) HDiv(DataType::Type::kInt32, add1, div_check, 0); in TestBuildDependencyGraphAndSchedule()
106 HInstruction* array_get1 = in TestBuildDependencyGraphAndSchedule()
108 HInstruction* array_set1 = in TestBuildDependencyGraphAndSchedule()
[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_;
Dnodes_vector.h125 void SetGoverningPredicate(HInstruction* input, PredicationKind pred_kind) { in SetGoverningPredicate()
133 void SetMergingGoverningPredicate(HInstruction* input) { in SetMergingGoverningPredicate()
136 void SetZeroingGoverningPredicate(HInstruction* input) { in SetZeroingGoverningPredicate()
143 HInstruction* pred_input = InputAt(InputCount() - 1); in GetGoverningPredicate()
180 bool InstructionDataEquals(const HInstruction* other) const override { in InstructionDataEquals()
221 static bool ReturnsSIMDValue(HInstruction* instruction) { in ReturnsSIMDValue()
239 static constexpr size_t kPredicationKind = HInstruction::kNumberOfGenericPackedBits;
261 HInstruction* input, in HVecUnaryOperation()
275 HInstruction* GetInput() const { return InputAt(0); } in GetInput()
288 HInstruction* left, in HVecBinaryOperation()
[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
Dinliner.h97 HInstruction** return_replacement)
103 HInstruction** return_replacement)
122 HInstruction** return_replacement)
160 HInstruction* obj);
164 HInstruction* obj,
165 HInstruction* value,
238 void AddCHAGuard(HInstruction* invoke_instruction,
240 HInstruction* cursor,
244 HInstruction* receiver,
248 void FixUpReturnReferenceType(ArtMethod* resolved_method, HInstruction* return_replacement)
[all …]
Dloop_optimization.cc53 static void RemoveFromCycle(HInstruction* instruction) { in RemoveFromCycle()
86 static bool IsZeroExtensionAndGet(HInstruction* instruction,
88 /*out*/ HInstruction** operand);
92 static bool IsSignExtensionAndGet(HInstruction* instruction, in IsSignExtensionAndGet()
94 /*out*/ HInstruction** operand) { in IsSignExtensionAndGet()
132 HInstruction* conv = instruction->InputAt(0); in IsSignExtensionAndGet()
157 static bool IsZeroExtensionAndGet(HInstruction* instruction, in IsZeroExtensionAndGet()
159 /*out*/ HInstruction** operand) { in IsZeroExtensionAndGet()
197 HInstruction* conv = instruction->InputAt(0); in IsZeroExtensionAndGet()
220 static bool IsNarrowerOperands(HInstruction* a, in IsNarrowerOperands()
[all …]
Dinstruction_simplifier_arm.cc44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction);
45 bool TryMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op, bool do_merge);
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()
84 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand()
85 HInstruction* bitfield_op, in TryMergeIntoShifterOperand()
97 HInstruction* left = use->InputAt(0); in TryMergeIntoShifterOperand()
98 HInstruction* right = use->InputAt(1); in TryMergeIntoShifterOperand()
109 HInstruction* other_input; in TryMergeIntoShifterOperand()
[all …]
Dinstruction_simplifier_arm64.cc44 bool TryMergeIntoUsersShifterOperand(HInstruction* instruction);
45 bool TryMergeIntoShifterOperand(HInstruction* use,
46 HInstruction* bitfield_op,
48 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand()
51 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand()
65 HInstruction* instruction = it.Current(); in VisitBasicBlock()
90 bool InstructionSimplifierArm64Visitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand()
91 HInstruction* bitfield_op, in TryMergeIntoShifterOperand()
103 HInstruction* left; in TryMergeIntoShifterOperand()
104 HInstruction* right; in TryMergeIntoShifterOperand()
[all …]

12345