Home
last modified time | relevance | path

Searched refs:instruction (Results 1 – 25 of 44) sorted by relevance

12

/art/compiler/optimizing/
Dbuilder.cc49 void Add(HInstruction* instruction) { in Add() argument
51 DCHECK(instruction->GetType() != Primitive::kPrimLong in Add()
52 && instruction->GetType() != Primitive::kPrimDouble); in Add()
54 instruction->GetBlock()->AddInstruction(temp); in Add()
55 DCHECK(temp->GetPrevious() == instruction); in Add()
140 void HGraphBuilder::If_22t(const Instruction& instruction, uint32_t dex_offset) { in If_22t() argument
141 HInstruction* first = LoadLocal(instruction.VRegA(), Primitive::kPrimInt); in If_22t()
142 HInstruction* second = LoadLocal(instruction.VRegB(), Primitive::kPrimInt); in If_22t()
147 HBasicBlock* target = FindBlockStartingAt(dex_offset + instruction.GetTargetOffset()); in If_22t()
150 target = FindBlockStartingAt(dex_offset + instruction.SizeInCodeUnits()); in If_22t()
[all …]
Dnodes.cc291 void HBasicBlock::InsertInstructionBefore(HInstruction* instruction, HInstruction* cursor) { in InsertInstructionBefore() argument
293 DCHECK(instruction->AsPhi() == nullptr); in InsertInstructionBefore()
294 DCHECK_EQ(instruction->GetId(), -1); in InsertInstructionBefore()
297 DCHECK(!instruction->IsControlFlow()); in InsertInstructionBefore()
298 instruction->next_ = cursor; in InsertInstructionBefore()
299 instruction->previous_ = cursor->previous_; in InsertInstructionBefore()
300 cursor->previous_ = instruction; in InsertInstructionBefore()
302 instructions_.first_instruction_ = instruction; in InsertInstructionBefore()
304 instruction->previous_->next_ = instruction; in InsertInstructionBefore()
306 instruction->SetBlock(this); in InsertInstructionBefore()
[all …]
Dlocations.cc23 LocationSummary::LocationSummary(HInstruction* instruction) in LocationSummary() argument
24 : inputs_(instruction->GetBlock()->GetGraph()->GetArena(), instruction->InputCount()), in LocationSummary()
25 temps_(instruction->GetBlock()->GetGraph()->GetArena(), 0) { in LocationSummary()
26 inputs_.SetSize(instruction->InputCount()); in LocationSummary()
27 for (size_t i = 0; i < instruction->InputCount(); i++) { in LocationSummary()
33 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant() argument
34 return instruction->IsConstant() in RegisterOrConstant()
35 ? Location::ConstantLocation(instruction->AsConstant()) in RegisterOrConstant()
Dgraph_visualizer.cc123 void VisitParallelMove(HParallelMove* instruction) { in VisitParallelMove() argument
124 output_ << instruction->DebugName(); in VisitParallelMove()
126 for (size_t i = 0, e = instruction->NumMoves(); i < e; ++i) { in VisitParallelMove()
127 MoveOperands* move = instruction->MoveOperandsAt(i); in VisitParallelMove()
138 void VisitInstruction(HInstruction* instruction) { in VisitInstruction() argument
139 output_ << instruction->DebugName(); in VisitInstruction()
140 if (instruction->InputCount() > 0) { in VisitInstruction()
142 for (HInputIterator inputs(instruction); !inputs.Done(); inputs.Advance()) { in VisitInstruction()
147 if (pass_name_ == kLivenessPassName && instruction->GetLifetimePosition() != kNoLifetime) { in VisitInstruction()
148 output_ << " (liveness: " << instruction->GetLifetimePosition(); in VisitInstruction()
[all …]
Dbuilder.h57 bool AnalyzeDexInstruction(const Instruction& instruction, int32_t dex_offset);
71 void UpdateLocal(int register_index, HInstruction* instruction) const;
79 void Binop_23x(const Instruction& instruction, Primitive::Type type);
82 void Binop_12x(const Instruction& instruction, Primitive::Type type);
85 void Binop_22b(const Instruction& instruction, bool reverse);
88 void Binop_22s(const Instruction& instruction, bool reverse);
90 template<typename T> void If_21t(const Instruction& instruction, uint32_t dex_offset);
91 template<typename T> void If_22t(const Instruction& instruction, uint32_t dex_offset);
93 void BuildReturn(const Instruction& instruction, Primitive::Type type);
95 bool BuildFieldAccess(const Instruction& instruction, uint32_t dex_offset, bool is_get);
[all …]
Dpretty_printer.h29 void PrintPreInstruction(HInstruction* instruction) { in PrintPreInstruction() argument
31 PrintInt(instruction->GetId()); in PrintPreInstruction()
35 virtual void VisitInstruction(HInstruction* instruction) { in VisitInstruction() argument
36 PrintPreInstruction(instruction); in VisitInstruction()
37 PrintString(instruction->DebugName()); in VisitInstruction()
38 PrintPostInstruction(instruction); in VisitInstruction()
41 void PrintPostInstruction(HInstruction* instruction) { in PrintPostInstruction() argument
42 if (instruction->InputCount() != 0) { in PrintPostInstruction()
45 for (HInputIterator it(instruction); !it.Done(); it.Advance()) { in PrintPostInstruction()
55 if (instruction->HasUses()) { in PrintPostInstruction()
[all …]
Dcode_generator_x86_64.cc307 void CodeGeneratorX86_64::Move(HInstruction* instruction, in Move() argument
310 if (instruction->AsIntConstant() != nullptr) { in Move()
311 Immediate imm(instruction->AsIntConstant()->GetValue()); in Move()
317 } else if (instruction->AsLongConstant() != nullptr) { in Move()
318 int64_t value = instruction->AsLongConstant()->GetValue(); in Move()
325 } else if (instruction->AsLoadLocal() != nullptr) { in Move()
326 switch (instruction->GetType()) { in Move()
333 Move(location, Location::StackSlot(GetStackSlot(instruction->AsLoadLocal()->GetLocal()))); in Move()
337 … Move(location, Location::DoubleStackSlot(GetStackSlot(instruction->AsLoadLocal()->GetLocal()))); in Move()
341 LOG(FATAL) << "Unimplemented local type " << instruction->GetType(); in Move()
[all …]
Dcode_generator_x86.cc423 void CodeGeneratorX86::Move(HInstruction* instruction, Location location, HInstruction* move_for) { in Move() argument
424 if (instruction->AsIntConstant() != nullptr) { in Move()
425 Immediate imm(instruction->AsIntConstant()->GetValue()); in Move()
431 } else if (instruction->AsLongConstant() != nullptr) { in Move()
432 int64_t value = instruction->AsLongConstant()->GetValue(); in Move()
440 } else if (instruction->AsLoadLocal() != nullptr) { in Move()
441 switch (instruction->GetType()) { in Move()
448 Move32(location, Location::StackSlot(GetStackSlot(instruction->AsLoadLocal()->GetLocal()))); in Move()
453 GetStackSlot(instruction->AsLoadLocal()->GetLocal()))); in Move()
457 LOG(FATAL) << "Unimplemented local type " << instruction->GetType(); in Move()
[all …]
Dssa_type_propagation.cc77 HPhi* instruction = worklist_.Pop(); in ProcessWorklist() local
78 if (UpdateType(instruction)) { in ProcessWorklist()
79 AddDependentInstructionsToWorklist(instruction); in ProcessWorklist()
84 void SsaTypePropagation::AddToWorklist(HPhi* instruction) { in AddToWorklist() argument
85 worklist_.Add(instruction); in AddToWorklist()
88 void SsaTypePropagation::AddDependentInstructionsToWorklist(HPhi* instruction) { in AddDependentInstructionsToWorklist() argument
89 for (HUseIterator<HInstruction> it(instruction->GetUses()); !it.Done(); it.Advance()) { in AddDependentInstructionsToWorklist()
Dcode_generator_arm.cc455 void CodeGeneratorARM::Move(HInstruction* instruction, Location location, HInstruction* move_for) { in Move() argument
456 LocationSummary* locations = instruction->GetLocations(); in Move()
461 if (instruction->AsIntConstant() != nullptr) { in Move()
462 int32_t value = instruction->AsIntConstant()->GetValue(); in Move()
470 } else if (instruction->AsLongConstant() != nullptr) { in Move()
471 int64_t value = instruction->AsLongConstant()->GetValue(); in Move()
482 } else if (instruction->AsLoadLocal() != nullptr) { in Move()
483 uint32_t stack_slot = GetStackSlot(instruction->AsLoadLocal()->GetLocal()); in Move()
484 switch (instruction->GetType()) { in Move()
499 LOG(FATAL) << "Unimplemented type " << instruction->GetType(); in Move()
[all …]
Dcode_generator.cc146 void CodeGenerator::AllocateRegistersLocally(HInstruction* instruction) const { in AllocateRegistersLocally()
147 LocationSummary* locations = instruction->GetLocations(); in AllocateRegistersLocally()
178 HInstruction* input = instruction->InputAt(i); in AllocateRegistersLocally()
215 AllocateFreeRegister(instruction->GetType(), blocked_registers_)); in AllocateRegistersLocally()
225 void CodeGenerator::InitLocations(HInstruction* instruction) { in InitLocations() argument
226 if (instruction->GetLocations() == nullptr) { in InitLocations()
227 if (instruction->IsTemporary()) { in InitLocations()
228 HInstruction* previous = instruction->GetPrevious(); in InitLocations()
229 Location temp_location = GetTemporaryLocation(instruction->AsTemporary()); in InitLocations()
230 Move(previous, temp_location, instruction); in InitLocations()
[all …]
Dregister_allocator.cc116 HInstruction* instruction = liveness_.GetInstructionFromSsaIndex(i - 1); in AllocateRegistersInternal() local
117 LiveInterval* current = instruction->GetLiveInterval(); in AllocateRegistersInternal()
121 LocationSummary* locations = instruction->GetLocations(); in AllocateRegistersInternal()
136 size_t position = instruction->GetLifetimePosition(); in AllocateRegistersInternal()
141 BlockRegister(output, position, position + 1, instruction->GetType()); in AllocateRegistersInternal()
145 for (size_t i = 0; i < instruction->InputCount(); ++i) { in AllocateRegistersInternal()
148 BlockRegister(input, position, position + 1, instruction->InputAt(i)->GetType()); in AllocateRegistersInternal()
154 DCHECK(instruction->IsParameterValue()); in AllocateRegistersInternal()
156 } else if (current->HasSpillSlot() || instruction->IsConstant()) { in AllocateRegistersInternal()
209 HInstruction* instruction = liveness_.GetInstructionFromSsaIndex(i); in ValidateInternal() local
[all …]
Dssa_liveness_analysis.h158 void AddUse(HInstruction* instruction, size_t input_index, bool is_environment) { in AddUse() argument
162 size_t position = instruction->GetLifetimePosition() + 1; in AddUse()
163 size_t start_block_position = instruction->GetBlock()->GetLifetimeStart(); in AddUse()
164 size_t end_block_position = instruction->GetBlock()->GetLifetimeEnd(); in AddUse()
180 instruction, input_index, is_environment, position, first_use_); in AddUse()
183 void AddPhiUse(HInstruction* instruction, size_t input_index, HBasicBlock* block) { in AddPhiUse() argument
184 DCHECK(instruction->AsPhi() != nullptr); in AddPhiUse()
186 instruction, input_index, false, block->GetLifetimeEnd(), first_use_); in AddPhiUse()
/art/compiler/sea_ir/code_gen/
Dcode_gen.h59 llvm::Value* GetValue(InstructionNode* instruction) { in GetValue() argument
60 return GetValue(instruction->Id()); in GetValue()
67 void AddValue(InstructionNode* instruction, llvm::Value* value) { in AddValue() argument
68 AddValue(instruction->Id(), value); in AddValue()
109 void Visit(InstructionNode* instruction) { } in Visit() argument
111 void Visit(UnnamedConstInstructionNode* instruction) { } in Visit() argument
112 void Visit(ConstInstructionNode* instruction) { } in Visit() argument
113 void Visit(ReturnInstructionNode* instruction) { } in Visit() argument
114 void Visit(IfNeInstructionNode* instruction) { } in Visit() argument
116 void Visit(MoveResultInstructionNode* instruction) { } in Visit() argument
[all …]
Dcode_gen.cc118 void CodeGenVisitor::Visit(InstructionNode* instruction) { in Visit() argument
119 std::string instr = instruction->GetInstruction()->DumpString(NULL); in Visit()
123 void CodeGenVisitor::Visit(UnnamedConstInstructionNode* instruction) { in Visit() argument
124 std::string instr = instruction->GetInstruction()->DumpString(NULL); in Visit()
126 llvm_data_->AddValue(instruction, in Visit()
127 llvm::ConstantInt::get(*llvm_data_->context_, llvm::APInt(32, instruction->GetConstValue()))); in Visit()
130 void CodeGenVisitor::Visit(ConstInstructionNode* instruction) { in Visit() argument
131 std::string instr = instruction->GetInstruction()->DumpString(NULL); in Visit()
133 llvm_data_->AddValue(instruction, in Visit()
134 llvm::ConstantInt::get(*llvm_data_->context_, llvm::APInt(32, instruction->GetConstValue()))); in Visit()
[all …]
/art/compiler/sea_ir/debug/
Ddot_gen.h46 void ToDotSSAEdges(InstructionNode* instruction);
47 void ToDotSSAEdges(PhiInstructionNode* instruction);
57 void Visit(InstructionNode* instruction);
59 void Visit(UnnamedConstInstructionNode* instruction);
61 void Visit(ConstInstructionNode* instruction) { in Visit() argument
62 Visit(reinterpret_cast<InstructionNode*>(instruction)); in Visit()
64 void Visit(ReturnInstructionNode* instruction) { in Visit() argument
65 Visit(reinterpret_cast<InstructionNode*>(instruction)); in Visit()
67 void Visit(IfNeInstructionNode* instruction) { in Visit() argument
68 Visit(reinterpret_cast<InstructionNode*>(instruction)); in Visit()
[all …]
Ddot_gen.cc44 void DotGenerationVisitor::ToDotSSAEdges(InstructionNode* instruction) { in ToDotSSAEdges() argument
45 std::map<int, InstructionNode*>* definition_edges = instruction->GetSSAProducersMap(); in ToDotSSAEdges()
52 dot_text_ += instruction->StringId() + "[color=gray,label=\""; in ToDotSSAEdges()
67 std::vector<InstructionNode*>* used_in = instruction->GetSSAConsumers(); in ToDotSSAEdges()
70 dot_text_ += (*cit)->StringId() + " -> " + instruction->StringId() + "[color=gray,label=\""; in ToDotSSAEdges()
76 void DotGenerationVisitor::ToDotSSAEdges(PhiInstructionNode* instruction) { in ToDotSSAEdges() argument
77 std::vector<InstructionNode*> definition_edges = instruction->GetSSAProducers(); in ToDotSSAEdges()
84 dot_text_ += instruction->StringId() + "[color=gray,label=\""; in ToDotSSAEdges()
85 dot_text_ += art::StringPrintf("vR = %d", instruction->GetRegisterNumber()); in ToDotSSAEdges()
99 std::vector<InstructionNode*>* used_in = instruction->GetSSAConsumers(); in ToDotSSAEdges()
[all …]
/art/compiler/sea_ir/ir/
Dvisitor.h52 virtual void Visit(ConstInstructionNode* instruction) = 0;
53 virtual void Visit(UnnamedConstInstructionNode* instruction) = 0;
54 virtual void Visit(ReturnInstructionNode* instruction) = 0;
55 virtual void Visit(IfNeInstructionNode* instruction) = 0;
56 virtual void Visit(MoveResultInstructionNode* instruction) = 0;
57 virtual void Visit(InvokeStaticInstructionNode* instruction) = 0;
58 virtual void Visit(AddIntInstructionNode* instruction) = 0;
59 virtual void Visit(GotoInstructionNode* instruction) = 0;
60 virtual void Visit(IfEqzInstructionNode* instruction) = 0;
70 virtual void Traverse(ConstInstructionNode* instruction) { } in Traverse() argument
[all …]
/art/compiler/sea_ir/types/
Dtype_inference_visitor.h46 void Visit(PhiInstructionNode* instruction);
48 void Visit(InstructionNode* instruction) { } in Visit() argument
49 void Visit(UnnamedConstInstructionNode* instruction);
50 void Visit(ConstInstructionNode* instruction) { } in Visit() argument
51 void Visit(ReturnInstructionNode* instruction) { } in Visit() argument
52 void Visit(IfNeInstructionNode* instruction) { } in Visit() argument
53 void Visit(MoveResultInstructionNode* instruction);
54 void Visit(InvokeStaticInstructionNode* instruction);
55 void Visit(AddIntInstructionNode* instruction);
56 void Visit(GotoInstructionNode* instruction) { } in Visit() argument
[all …]
Dtype_inference_visitor.cc38 void TypeInferenceVisitor::Visit(UnnamedConstInstructionNode* instruction) { in Visit() argument
42 void TypeInferenceVisitor::Visit(PhiInstructionNode* instruction) { in Visit() argument
43 std::vector<const Type*> types_to_merge = GetOperandTypes(instruction); in Visit()
48 void TypeInferenceVisitor::Visit(AddIntInstructionNode* instruction) { in Visit() argument
49 std::vector<const Type*> operand_types = GetOperandTypes(instruction); in Visit()
59 void TypeInferenceVisitor::Visit(MoveResultInstructionNode* instruction) { in Visit() argument
60 std::vector<const Type*> operand_types = GetOperandTypes(instruction); in Visit()
65 void TypeInferenceVisitor::Visit(InvokeStaticInstructionNode* instruction) { in Visit() argument
66 FunctionTypeInfo fti(graph_, instruction, type_cache_); in Visit()
72 InstructionNode* instruction) const { in GetOperandTypes()
[all …]
/art/disassembler/
Ddisassembler_mips.cc34 bool Matches(uint32_t instruction) const { in Matches()
35 return (instruction & mask) == value; in Matches()
172 uint32_t instruction = ReadU32(instr_ptr); in Dump() local
174 uint32_t rs = (instruction >> 21) & 0x1f; // I-type, R-type. in Dump()
175 uint32_t rt = (instruction >> 16) & 0x1f; // I-type, R-type. in Dump()
176 uint32_t rd = (instruction >> 11) & 0x1f; // R-type. in Dump()
177 uint32_t sa = (instruction >> 6) & 0x1f; // R-type. in Dump()
183 uint32_t op = (instruction >> 26) & 0x3f; in Dump()
184 uint32_t function = (instruction & 0x3f); // R-type. in Dump()
188 if (gMipsInstructions[i].Matches(instruction)) { in Dump()
[all …]
Ddisassembler_arm.cc128 …ArmRegister(uint32_t instruction, uint32_t at_bit) : r((instruction >> at_bit) & 0xf) { CHECK_LE(r… in ArmRegister()
145 …ThumbRegister(uint16_t instruction, uint16_t at_bit) : ArmRegister((instruction >> at_bit) & 0x7) … in ThumbRegister()
149 explicit Rm(uint32_t instruction) : shift((instruction >> 4) & 0xff), rm(instruction & 0xf) {} in Rm()
162 explicit ShiftedImmediate(uint32_t instruction) { in ShiftedImmediate()
163 uint32_t rotate = ((instruction >> 8) & 0xf); in ShiftedImmediate()
164 uint32_t imm = (instruction & 0xff); in ShiftedImmediate()
175 explicit RegisterList(uint32_t instruction) : register_list(instruction & 0xffff) {} in RegisterList()
245 uint32_t instruction = ReadU32(instr_ptr); in DumpArm() local
246 uint32_t cond = (instruction >> 28) & 0xf; in DumpArm()
247 uint32_t op1 = (instruction >> 25) & 0x7; in DumpArm()
[all …]
Ddisassembler_arm64.cc35 uint32_t instruction = ReadU32(begin); in Dump() local
36 decoder.Decode(reinterpret_cast<vixl::Instruction*>(&instruction)); in Dump()
38 << StringPrintf(": %08x\t%s\n", instruction, disasm.GetOutput()); in Dump()
/art/runtime/quick/
Dinline_method_analyser.cc96 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseMethodCode() local
97 Instruction::Code opcode = instruction->Opcode(); in AnalyseMethodCode()
169 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseConstMethod() local
170 const Instruction* return_instruction = instruction->Next(); in AnalyseConstMethod()
180 int32_t const_value = instruction->VRegB(); in AnalyseConstMethod()
181 if (instruction->Opcode() == Instruction::CONST_HIGH16) { in AnalyseConstMethod()
184 DCHECK_LT(instruction->VRegA(), code_item->registers_size_); in AnalyseConstMethod()
185 if (instruction->VRegA() != return_reg) { in AnalyseConstMethod()
202 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseIGetMethod() local
203 Instruction::Code opcode = instruction->Opcode(); in AnalyseIGetMethod()
[all …]
/art/build/
DAndroid.oat.mk36 --base=$$(LIBART_IMG_HOST_BASE_ADDRESS) --instruction-set=$$($(1)ART_HOST_ARCH) \
37 --instruction-set-features=$$($(1)HOST_INSTRUCTION_SET_FEATURES) \
59 --base=$$(LIBART_IMG_TARGET_BASE_ADDRESS) --instruction-set=$$($(1)TARGET_ARCH) \
60 --instruction-set-features=$$($(1)TARGET_INSTRUCTION_SET_FEATURES) \

12