/art/compiler/optimizing/ |
D | builder.cc | 49 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 …]
|
D | nodes.cc | 291 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 …]
|
D | locations.cc | 23 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()
|
D | graph_visualizer.cc | 123 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 …]
|
D | builder.h | 57 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 …]
|
D | pretty_printer.h | 29 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 …]
|
D | code_generator_x86_64.cc | 307 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 …]
|
D | code_generator_x86.cc | 423 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 …]
|
D | ssa_type_propagation.cc | 77 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()
|
D | code_generator_arm.cc | 455 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 …]
|
D | code_generator.cc | 146 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 …]
|
D | register_allocator.cc | 116 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 …]
|
D | ssa_liveness_analysis.h | 158 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/ |
D | code_gen.h | 59 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 …]
|
D | code_gen.cc | 118 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/ |
D | dot_gen.h | 46 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 …]
|
D | dot_gen.cc | 44 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/ |
D | visitor.h | 52 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/ |
D | type_inference_visitor.h | 46 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 …]
|
D | type_inference_visitor.cc | 38 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/ |
D | disassembler_mips.cc | 34 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 …]
|
D | disassembler_arm.cc | 128 …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 …]
|
D | disassembler_arm64.cc | 35 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/ |
D | inline_method_analyser.cc | 96 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/ |
D | Android.oat.mk | 36 --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) \
|