/art/compiler/optimizing/ |
D | instruction_builder.h | 72 bool ProcessDexInstruction(const Instruction& instruction, uint32_t dex_pc); 75 HBasicBlock* FindBlockStartingAt(uint32_t dex_pc) const; 84 HInstruction* LoadNullCheckedLocal(uint32_t register_index, uint32_t dex_pc); 94 void Unop_12x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc); 97 void Binop_23x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc); 100 void Binop_23x_shift(const Instruction& instruction, DataType::Type type, uint32_t dex_pc); 105 uint32_t dex_pc); 108 void Binop_12x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc); 111 void Binop_12x_shift(const Instruction& instruction, DataType::Type type, uint32_t dex_pc); 114 void Binop_22b(const Instruction& instruction, bool reverse, uint32_t dex_pc); [all …]
|
D | instruction_builder.cc | 119 HBasicBlock* HInstructionBuilder::FindBlockStartingAt(uint32_t dex_pc) const { in FindBlockStartingAt() 120 return block_builder_->GetBlockAt(dex_pc); in FindBlockStartingAt() 310 HInstruction* HInstructionBuilder::LoadNullCheckedLocal(uint32_t register_index, uint32_t dex_pc) { in LoadNullCheckedLocal() argument 316 HNullCheck* null_check = new (allocator_) HNullCheck(ref, dex_pc); in LoadNullCheckedLocal() 416 const uint32_t dex_pc = pair.DexPc(); in Build() local 417 if (dex_pc != block_dex_pc && FindBlockStartingAt(dex_pc) != nullptr) { in Build() 426 if (native_debuggable && native_debug_info_locations->IsBitSet(dex_pc)) { in Build() 427 AppendInstruction(new (allocator_) HNop(dex_pc, /* needs_environment= */ true)); in Build() 433 << " " << pair.Inst().Name() << "@" << dex_pc; in Build() 434 if (!ProcessDexInstruction(pair.Inst(), dex_pc)) { in Build() [all …]
|
D | nodes_vector.h | 80 uint32_t dex_pc) in HVecOperation() argument 84 dex_pc, in HVecOperation() 273 uint32_t dex_pc) in HVecUnaryOperation() argument 280 dex_pc) { in HVecUnaryOperation() 301 uint32_t dex_pc) in HVecBinaryOperation() argument 308 dex_pc) { in HVecBinaryOperation() 332 uint32_t dex_pc) in HVecMemoryOperation() argument 339 dex_pc), in HVecMemoryOperation() 392 uint32_t dex_pc) in HVecReplicateScalar() argument 394 kVecReplicateScalar, allocator, scalar, packed_type, vector_length, dex_pc) { in HVecReplicateScalar() [all …]
|
D | block_builder.cc | 43 HBasicBlock* HBasicBlockBuilder::MaybeCreateBlockAt(uint32_t dex_pc) { in MaybeCreateBlockAt() argument 44 return MaybeCreateBlockAt(dex_pc, dex_pc); in MaybeCreateBlockAt() 99 const uint32_t dex_pc = pair.DexPc(); in CreateBranchTargets() local 103 MaybeCreateBlockAt(dex_pc + instruction.GetTargetOffset()); in CreateBranchTargets() 105 DexSwitchTable table(instruction, dex_pc); in CreateBranchTargets() 107 MaybeCreateBlockAt(dex_pc + s_it.CurrentTargetOffset()); in CreateBranchTargets() 115 MaybeCreateBlockAt(dex_pc, s_it.GetDexPcForCurrentIndex()); in CreateBranchTargets() 148 const uint32_t dex_pc = pair.DexPc(); in ConnectBasicBlocks() local 152 HBasicBlock* next_block = GetBlockAt(dex_pc); in ConnectBasicBlocks() 176 uint32_t target_dex_pc = dex_pc + instruction.GetTargetOffset(); in ConnectBasicBlocks() [all …]
|
D | profiling_info_builder.cc | 83 uint32_t dex_pc = EncodeDexPc(invoke, compiler_options_); in HandleInvoke() local 84 if (dex_pc != kNoDexPc) { in HandleInvoke() 85 inline_caches_.push_back(dex_pc); in HandleInvoke() 136 uint32_t dex_pc = EncodeDexPc(instruction, compiler_options); in GetInlineCache() local 137 if (dex_pc == kNoDexPc) { in GetInlineCache() 140 return info->GetInlineCache(dex_pc); in GetInlineCache()
|
D | block_builder.h | 45 HBasicBlock* GetBlockAt(uint32_t dex_pc) const { return branch_targets_[dex_pc]; } in GetBlockAt() argument 49 HBasicBlock* MaybeCreateBlockAt(uint32_t dex_pc);
|
D | nodes.h | 634 HConstant* GetConstant(DataType::Type type, int64_t value, uint32_t dex_pc = kNoDexPc); 639 HNullConstant* GetNullConstant(uint32_t dex_pc = kNoDexPc); 641 HIntConstant* GetIntConstant(int32_t value, uint32_t dex_pc = kNoDexPc) { 642 return CreateConstant(value, &cached_int_constants_, dex_pc); 644 HLongConstant* GetLongConstant(int64_t value, uint32_t dex_pc = kNoDexPc) { 645 return CreateConstant(value, &cached_long_constants_, dex_pc); 647 HFloatConstant* GetFloatConstant(float value, uint32_t dex_pc = kNoDexPc) { 648 return CreateConstant(bit_cast<int32_t, float>(value), &cached_float_constants_, dex_pc); 650 HDoubleConstant* GetDoubleConstant(double value, uint32_t dex_pc = kNoDexPc) { 651 return CreateConstant(bit_cast<int64_t, double>(value), &cached_double_constants_, dex_pc); [all …]
|
D | nodes_x86.h | 74 uint32_t dex_pc) in HX86FPNeg() argument 75 : HExpression(kX86FPNeg, result_type, SideEffects::None(), dex_pc) { in HX86FPNeg() 98 uint32_t dex_pc) in HX86PackedSwitch() argument 99 : HExpression(kX86PackedSwitch, SideEffects::None(), dex_pc), in HX86PackedSwitch() 136 uint32_t dex_pc = kNoDexPc) 137 : HBinaryOperation(kX86AndNot, result_type, left, right, SideEffects::None(), dex_pc) { in HBinaryOperation() argument 172 HInstruction* input, uint32_t dex_pc = kNoDexPc) 173 : HUnaryOperation(kX86MaskOrResetLeastSetBit, result_type, input, dex_pc), in HUnaryOperation() argument
|
D | nodes_shared.h | 34 uint32_t dex_pc = kNoDexPc) 35 : HExpression(kMultiplyAccumulate, type, SideEffects::None(), dex_pc), in HExpression() argument 85 HInstruction* index, HInstruction* offset, HInstruction* shift, uint32_t dex_pc) in HIntermediateAddressIndex() argument 89 dex_pc) { in HIntermediateAddressIndex() 138 uint32_t dex_pc = kNoDexPc) 139 : HExpression(kDataProcWithShifterOp, instr->GetType(), SideEffects::None(), dex_pc),
|
/art/dexdump/ |
D | dexdump_cfg.cc | 80 const uint32_t dex_pc = pair.DexPc(); in DumpMethodCFG() local 81 if (dex_pc == 0 || in DumpMethodCFG() 82 (dex_pc_is_branch_target.find(dex_pc) != dex_pc_is_branch_target.end()) || in DumpMethodCFG() 91 dex_pc_to_node_id.insert(std::make_pair(dex_pc, id)); in DumpMethodCFG() 97 dex_pc_to_incl_id.insert(std::make_pair(dex_pc, dex_pc_to_node_id.size() - 1)); in DumpMethodCFG() 107 os << "<" << "p" << dex_pc << ">"; in DumpMethodCFG() 108 os << " 0x" << std::hex << dex_pc << std::dec << ": "; in DumpMethodCFG() 165 const uint32_t dex_pc = pair.DexPc(); in DumpMethodCFG() local 167 auto it = dex_pc_to_node_id.find(dex_pc); in DumpMethodCFG() 183 block_start_dex_pc = dex_pc; in DumpMethodCFG() [all …]
|
/art/runtime/ |
D | monitor-inl.h | 43 inline uintptr_t Monitor::LockOwnerInfoChecksum(ArtMethod* m, uint32_t dex_pc, Thread* t) { in LockOwnerInfoChecksum() argument 44 uintptr_t dpc_and_thread = static_cast<uintptr_t>(dex_pc << 8) ^ reinterpret_cast<uintptr_t>(t); in LockOwnerInfoChecksum() 49 inline void Monitor::SetLockOwnerInfo(ArtMethod* method, uint32_t dex_pc, Thread* t) { in SetLockOwnerInfo() argument 51 lock_owner_dex_pc_.store(dex_pc, std::memory_order_relaxed); in SetLockOwnerInfo() 53 uintptr_t sum = LockOwnerInfoChecksum(method, dex_pc, t); in SetLockOwnerInfo() 58 /*out*/ uint32_t* dex_pc, in GetLockOwnerInfo() argument 76 *dex_pc = owners_dex_pc; in GetLockOwnerInfo() 79 *dex_pc = 0; in GetLockOwnerInfo()
|
D | instrumentation.h | 99 uint32_t dex_pc) 113 uint32_t dex_pc, 119 uint32_t dex_pc, 128 uint32_t dex_pc, 145 uint32_t dex_pc, 466 uint32_t dex_pc) const 473 uint32_t dex_pc) const in DexPcMovedEvent() argument 476 DexPcMovedEventImpl(thread, this_object, method, dex_pc); in DexPcMovedEvent() 481 void Branch(Thread* thread, ArtMethod* method, uint32_t dex_pc, int32_t offset) const in Branch() argument 484 BranchImpl(thread, method, dex_pc, offset); in Branch() [all …]
|
D | check_reference_map_visitor.h | 65 uint32_t dex_pc, in CheckReferences() argument 71 registers, number_of_references, dex_pc, native_pc_offset, search_for_valid_stack_map); in CheckReferences() 77 uint32_t dex_pc, in CheckOptimizedMethod() argument 86 if (map.GetDexPc() == dex_pc && code_info.GetStackMaskOf(map).IsValid()) { in CheckOptimizedMethod()
|
/art/runtime/jit/ |
D | profiling_info_test.cc | 114 for (uint16_t dex_pc = 0; dex_pc < 11; dex_pc++) { in SaveProfilingInfoWithFakeInlineCaches() local 117 caches.emplace_back(dex_pc, /*is_missing_types*/false, classes); in SaveProfilingInfoWithFakeInlineCaches() 120 for (uint16_t dex_pc = 11; dex_pc < 22; dex_pc++) { in SaveProfilingInfoWithFakeInlineCaches() local 125 caches.emplace_back(dex_pc, /*is_missing_types*/false, classes); in SaveProfilingInfoWithFakeInlineCaches() 128 for (uint16_t dex_pc = 22; dex_pc < 33; dex_pc++) { in SaveProfilingInfoWithFakeInlineCaches() local 133 caches.emplace_back(dex_pc, /*is_missing_types*/false, classes); in SaveProfilingInfoWithFakeInlineCaches() 136 for (uint16_t dex_pc = 33; dex_pc < 44; dex_pc++) { in SaveProfilingInfoWithFakeInlineCaches() local 138 caches.emplace_back(dex_pc, /*is_missing_types*/true, classes); in SaveProfilingInfoWithFakeInlineCaches()
|
D | profiling_info.cc | 91 InlineCache* ProfilingInfo::GetInlineCache(uint32_t dex_pc) { in GetInlineCache() argument 95 if (caches[i].dex_pc_ == dex_pc) { in GetInlineCache() 102 BranchCache* ProfilingInfo::GetBranchCache(uint32_t dex_pc) { in GetBranchCache() argument 106 if (caches[i].dex_pc_ == dex_pc) { in GetBranchCache() 115 void ProfilingInfo::AddInvokeInfo(uint32_t dex_pc, mirror::Class* cls) { in AddInvokeInfo() argument 116 InlineCache* cache = GetInlineCache(dex_pc); in AddInvokeInfo() 179 uint32_t dex_pc = dex_pcs[size - 1]; in EncodeDexPc() local 183 dex_pc += ((dex_pcs[i - 1] + 1) << shift); in EncodeDexPc() 186 return dex_pc; in EncodeDexPc()
|
/art/tools/veridex/ |
D | flow_analysis.cc | 38 void VeriFlowAnalysis::SetAsBranchTarget(uint32_t dex_pc) { in SetAsBranchTarget() argument 39 if (dex_registers_[dex_pc] == nullptr) { in SetAsBranchTarget() 40 dex_registers_[dex_pc].reset( in SetAsBranchTarget() 45 bool VeriFlowAnalysis::IsBranchTarget(uint32_t dex_pc) { in IsBranchTarget() argument 46 return dex_registers_[dex_pc] != nullptr; in IsBranchTarget() 49 bool VeriFlowAnalysis::MergeRegisterValues(uint32_t dex_pc) { in MergeRegisterValues() argument 50 if (dex_pc >= code_item_accessor_.InsnsSizeInCodeUnits()) { in MergeRegisterValues() 55 if (!instruction_infos_[dex_pc].has_been_visited) { in MergeRegisterValues() 56 dex_registers_[dex_pc]->assign(current_registers_.begin(), current_registers_.end()); in MergeRegisterValues() 62 void VeriFlowAnalysis::SetVisited(uint32_t dex_pc) { in SetVisited() argument [all …]
|
/art/runtime/entrypoints/jni/ |
D | jni_entrypoints.cc | 38 static inline uint32_t GetInvokeStaticMethodIndex(ArtMethod* caller, uint32_t dex_pc) in GetInvokeStaticMethodIndex() argument 41 const Instruction& instruction = caller->DexInstructions().InstructionAt(dex_pc); in GetInvokeStaticMethodIndex() 54 uint32_t dex_pc; in artFindNativeMethodRunnable() local 55 ArtMethod* method = self->GetCurrentMethod(&dex_pc); in artFindNativeMethodRunnable() 62 uint32_t method_idx = GetInvokeStaticMethodIndex(method, dex_pc); in artFindNativeMethodRunnable() 173 uint32_t dex_pc = inline_infos.empty() ? stack_map.GetDexPc() : inline_infos.back().GetDexPc(); in artCriticalNativeFrameSize() local 177 uint32_t method_idx = GetInvokeStaticMethodIndex(caller, dex_pc); in artCriticalNativeFrameSize()
|
/art/libdexfile/dex/ |
D | dex_instruction_iterator.h | 48 explicit DexInstructionPcPair(const uint16_t* instructions, uint32_t dex_pc) in DexInstructionPcPair() argument 49 : instructions_(instructions), dex_pc_(dex_pc) {} in DexInstructionPcPair() 68 explicit DexInstructionIteratorBase(const Instruction* inst, uint32_t dex_pc) in DexInstructionIteratorBase() argument 69 : data_(reinterpret_cast<const uint16_t*>(inst), dex_pc) {} in DexInstructionIteratorBase() 126 explicit DexInstructionIterator(const uint16_t* inst, uint32_t dex_pc) in DexInstructionIterator() argument 127 : DexInstructionIteratorBase(inst != nullptr ? Instruction::At(inst) : nullptr, dex_pc) {} in DexInstructionIterator()
|
/art/test/004-ReferenceMap/ |
D | stack_walk_refmap_jni.cc | 23 #define CHECK_REGS_CONTAIN_REFS(dex_pc, abort_if_not_found, ...) do { \ argument 28 dex_pc, \ 33 dex_pc, \
|
/art/runtime/mirror/ |
D | stack_frame_info.cc | 35 int32_t dex_pc) { in AssignFields() argument 38 file_name.Get(), line_number, dex_pc); in AssignFields() 41 file_name.Get(), line_number, dex_pc); in AssignFields()
|
/art/runtime/verifier/ |
D | method_verifier-inl.h | 25 inline RegisterLine* MethodVerifier::GetRegLine(uint32_t dex_pc) { in GetRegLine() argument 26 return reg_table_.GetLine(dex_pc); in GetRegLine()
|
/art/runtime/interpreter/ |
D | shadow_frame.h | 80 uint32_t dex_pc) { in CreateDeoptimizedFrame() argument 82 return CreateShadowFrameImpl(num_vregs, method, dex_pc, memory); in CreateDeoptimizedFrame() 94 #define CREATE_SHADOW_FRAME(num_vregs, method, dex_pc) ({ \ argument 98 ShadowFrame::CreateShadowFrameImpl((num_vregs), (method), (dex_pc), (alloca_mem))); \ 127 void SetDexPC(uint32_t dex_pc) { in SetDexPC() argument 128 dex_pc_ = dex_pc; in SetDexPC() 326 uint32_t dex_pc, in CreateShadowFrameImpl() argument 328 return new (memory) ShadowFrame(num_vregs, method, dex_pc); in CreateShadowFrameImpl() 403 ShadowFrame(uint32_t num_vregs, ArtMethod* method, uint32_t dex_pc) in ShadowFrame() argument 410 dex_pc_(dex_pc), in ShadowFrame()
|
D | interpreter_switch_impl0.cc | 111 uint32_t dex_pc, in Branch() argument 115 instrumentation->Branch(self, method, dex_pc, dex_pc_offset); in Branch() 126 uint32_t dex_pc, in DoDexPcMoveEvent() argument 140 dex_pc); in DoDexPcMoveEvent()
|
/art/runtime/oat/ |
D | oat_quick_method_header.cc | 65 const uint32_t dex_pc, in ToNativeQuickPc() argument 75 StackMap stack_map = code_info.GetStackMapForDexPc(dex_pc); in ToNativeQuickPc() 81 LOG(FATAL) << "Failed to find native offset for dex pc 0x" << std::hex << dex_pc << " in " in ToNativeQuickPc() 111 for (auto dex_pc : dex_pc_list) { in ToNativeQuickPcForCatchHandlers() local 116 ss << "0x" << dex_pc; in ToNativeQuickPcForCatchHandlers()
|
/art/libprofile/profile/ |
D | profile_test_helper.h | 108 [](auto&& lhs, auto&& rhs) { return lhs.dex_pc < rhs.dex_pc; })); in EqualInlineCaches() 112 uint32_t dex_pc = it->first; in EqualInlineCaches() local 114 if (dex_pc != expected_it->dex_pc) { in EqualInlineCaches()
|