Searched refs:HInstruction (Results 1 - 25 of 123) sorted by relevance

12345

/art/compiler/optimizing/
H A Descape.h22 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 Dinduction_var_range.h47 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 Dregister_allocation_resolver.h29 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 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* or
[all...]
H A Dregister_allocator_graph_color.h32 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 Dinduction_var_analysis.h105 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 Dcode_generator_utils.h26 class HInstruction;
35 bool IsBooleanValueOrMaterializedCondition(HInstruction* cond_input);
H A Descape.cc23 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 Dscheduler.h38 // 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 Dinstruction_simplifier_shared.h26 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 Dnodes_mips.h46 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 Dnodes_shared.h22 // (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 Dssa_liveness_analysis_test.cc68 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 Dcode_sinking.cc37 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 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.
121 HTypeConversion* AddTypeConversionIfNecessary(HInstruction* instruction,
122 HInstruction* value,
137 HInstruction* FindSubstitute(HInstruction* instruction) {
144 HInstruction* substitut
[all...]
H A Dcha_guard_optimization.cc54 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 Dload_store_analysis_test.cc47 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 Dscheduler_test.cc101 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 Dload_store_analysis.h30 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 Dinstruction_simplifier_shared.cc27 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 Dprepare_for_register_allocation.h54 bool CanMoveClinitCheck(HInstruction* input, HInstruction* user) const;
55 bool CanEmitConditionAt(HCondition* condition, HInstruction* user) const;
H A Dgraph_visualizer.h31 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 Dinduction_var_analysis_test.cc112 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 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_replacemen
[all...]
H A 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) {
48 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) {
62 HInstruction* instruction = it.Current();
82 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use,
83 HInstruction* bitfield_o
[all...]

Completed in 158 milliseconds

12345