/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/regalloc/ |
H A D | reg_alloc_linear_scan.cpp | 26 /// Add interval in sorted order 27 static void AddInterval(LifeIntervals *interval, InstructionsIntervals *dest) in AddInterval() argument 32 dest->push_back(interval); in AddInterval() 39 if (cmp(interval, *iter)) { in AddInterval() 40 dest->insert(++iter, interval); in AddInterval() 44 dest->push_front(interval); in AddInterval() 90 void RegAllocLinearScan::PrepareInterval(LifeIntervals *interval) in PrepareInterval() argument 92 bool isFp = DataType::IsFloatType(interval->GetType()); in PrepareInterval() 95 if (interval->IsPhysical()) { in PrepareInterval() 96 ASSERT(intervals.fixed.size() > interval in PrepareInterval() 287 SplitActiveInterval(LifeIntervals *interval, LifeNumber splitPos) SplitActiveInterval() argument 310 AddToQueue(LifeIntervals *interval) AddToQueue() argument 452 AssignStackSlot(LifeIntervals *interval) AssignStackSlot() argument 478 RemapRegallocReg(LifeIntervals *interval) RemapRegallocReg() argument 622 IsNonSpillableConstInterval(LifeIntervals *interval) IsNonSpillableConstInterval() argument 640 BeforeConstantIntervalSpill(LifeIntervals *interval, LifeNumber splitPos) BeforeConstantIntervalSpill() argument [all...] |
H A D | reg_alloc_graph_coloring.cpp | 95 // current_interval - is additional life interval for an instruction required temp, add edges to the fixed in BuildIG() 128 // Translate preassigned register from interval to color graph in PrecolorIG() 242 for (auto *interval : la->GetLifeIntervals()) { in AddAffinityEdgesToPhysicalNodes() 243 if (!interval->HasInst()) { in AddAffinityEdgesToPhysicalNodes() 246 const auto *inst = interval->GetInst(); in AddAffinityEdgesToPhysicalNodes() 255 // Possible when general intervals are processing, while input is fp-interval or vice versa in AddAffinityEdgesToPhysicalNodes() 262 auto sibling = inputLi->FindSiblingAt(interval->GetBegin()); in AddAffinityEdgesToPhysicalNodes() 270 * Try to find node for the `li` interval in the IG; 328 auto interval = node.GetLifeIntervals(); in SparseIG() local 329 if (interval in SparseIG() 349 SpillInterval(LifeIntervals *interval, WorkingRanges *ranges, WorkingRanges *stackRanges) SpillInterval() argument 360 auto *interval = node.GetLifeIntervals(); Remap() local 375 auto *interval = node.GetLifeIntervals(); MapSlots() local [all...] |
H A D | reg_alloc_linear_scan.h | 40 * registers for some interval, LinearScan assigns one of the blocked ones. Previous holder of this blocked register is 100 void PrepareInterval(LifeIntervals *interval) override; 128 void SplitActiveInterval(LifeIntervals *interval, LifeNumber splitPos); 130 void AddToQueue(LifeIntervals *interval); 134 void AssignStackSlot(LifeIntervals *interval); 135 void RemapRegallocReg(LifeIntervals *interval); 150 auto interval = *it; in IterateIntervalsWithErasion() local 151 if (callback(interval)) { in IterateIntervalsWithErasion() 162 for (const auto &interval : intervals) { in EnumerateIntervals() 163 if (interval in EnumerateIntervals() [all...] |
H A D | split_resolver.cpp | 28 for (auto interval : liveness_->GetLifeIntervals()) { in Run() 29 if (interval->GetSibling() == nullptr) { in Run() 32 ASSERT(!interval->IsPhysical()); in Run() 35 ConnectSiblings(interval); in Run() 46 void SplitResolver::ConnectSiblings(LifeIntervals *interval) in ConnectSiblings() argument 48 for (auto prev = interval, curr = interval->GetSibling(); curr != nullptr; prev = curr, curr = curr->GetSibling()) { in ConnectSiblings() 54 << "Connect siblings for inst v" << interval->GetInst()->GetId() << " at point: " << curr->GetBegin(); in ConnectSiblings() 72 for (auto interval : liveness_->GetLifeIntervals()) { in ProcessBlock() 73 // PHI and its inputs can be considered as one interval, whic in ProcessBlock() [all...] |
H A D | reg_alloc_base.cpp | 168 void RegAllocBase::SetType(LifeIntervals *interval) in SetType() argument 171 if (interval->NoDest()) { in SetType() 172 ASSERT(interval->GetLocation().IsInvalid()); in SetType() 175 auto type = interval->GetInst()->GetType(); in SetType() 176 interval->SetType(ConvertRegType(GetGraph(), type)); in SetType() 179 void RegAllocBase::SetPreassignedRegisters(LifeIntervals *interval) in SetPreassignedRegisters() argument 181 auto inst = interval->GetInst(); in SetPreassignedRegisters() 183 interval->SetPreassignedReg(inst->GetDstReg()); in SetPreassignedRegisters() 188 interval->SetPreassignedReg(inst->GetDstLocation().GetValue()); in SetPreassignedRegisters() 197 interval in SetPreassignedRegisters() 281 TryToSpillConstant(LifeIntervals *interval, Graph *graph) TryToSpillConstant() argument [all...] |
H A D | reg_alloc_base.h | 27 bool TryToSpillConstant(LifeIntervals *interval, Graph *graph); 93 StackSlot GetNextStackSlot(LifeIntervals *interval) in GetNextStackSlot() argument 95 return !GetStackMask().AllSet() ? GetNextStackSlotImpl(interval) : INVALID_STACK_SLOT; in GetNextStackSlot() 98 StackSlot GetNextStackSlotImpl(LifeIntervals *interval) in GetNextStackSlotImpl() argument 107 if (stackUseLastPositions_[slot] > interval->GetBegin()) { in GetNextStackSlotImpl() 112 stackUseLastPositions_[slot] = interval->GetEnd(); in GetNextStackSlotImpl() 122 virtual void PrepareInterval([[maybe_unused]] LifeIntervals *interval) {} in PrepareInterval() argument 134 void SetType(LifeIntervals *interval); 135 void SetPreassignedRegisters(LifeIntervals *interval);
|
H A D | working_ranges.h | 35 static inline void AddRange(LifeIntervals *interval, InstructionsRanges *dest) in AddRange() argument 37 auto iter = std::upper_bound(dest->begin(), dest->end(), interval, in AddRange() 39 dest->insert(iter, interval); in AddRange()
|
H A D | reg_alloc_resolver.cpp | 135 auto interval = liveness_->GetTmpRegInterval(inst); in ResolveInputs() local 136 ASSERT(interval != nullptr); in ResolveInputs() 137 ASSERT(interval->HasReg()); in ResolveInputs() 138 auto regLocation = Location::MakeRegister(interval->GetReg(), interval->GetType()); in ResolveInputs() 267 bool HasSameLocation(LifeIntervals *interval, LifeNumber pos1, LifeNumber pos2) in HasSameLocation() argument 269 auto sibling1 = interval->FindSiblingAt(pos1); in HasSameLocation() 270 auto sibling2 = interval->FindSiblingAt(pos2); in HasSameLocation() 321 // so it does not actually matter which interval will be actually used. in ResolveSaveState()
|
/arkcompiler/runtime_core/compiler/tests/ |
H A D | life_intervals_test.cpp | 49 void CheckRanges(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckRanges() argument 51 ASSERT(interval != nullptr); in CheckRanges() 52 auto li_ranges = interval->GetRanges(); in CheckRanges() 71 auto interval = Create({{0, 4}}); in TEST_F() local 72 auto split = interval->SplitAt(4, GetAllocator()); in TEST_F() 74 CheckSiblings({interval, split}); in TEST_F() 75 CheckRanges(interval, {{0, 4}}); in TEST_F() 81 auto interval = Create({{0, 4}, {8, 10}}); in TEST_F() local 82 auto split = interval->SplitAt(6, GetAllocator()); in TEST_F() 84 CheckSiblings({interval, spli in TEST_F() 91 auto interval = Create({{0, 10}}); TEST_F() local 101 auto interval = Create({{0, 4}, {6, 10}, {12, 20}}); TEST_F() local 111 auto interval = Create({{0, 100}}); TEST_F() local 125 auto interval = Create({{0, 20}, {22, 40}, {42, 100}}); TEST_F() local 140 auto interval = Create({{0, 20}, {22, 40}, {42, 100}}); TEST_F() local 153 auto interval = Create({{6, 10}}); TEST_F() local 238 auto interval = Create({{10, 100}}); TEST_F() local [all...] |
H A D | reg_alloc_graph_coloring_new_test.cpp | 110 for (auto interval : intervals) { in HWTEST_F() 111 auto inst = interval->GetInst(); in HWTEST_F() 113 interval->SetPhysicalReg(physical_reg_count, inst->GetType()); in HWTEST_F() 153 for (auto interval : intervals) { in HWTEST_F() 154 auto inst = interval->GetInst(); in HWTEST_F() 156 interval->SetPhysicalReg(fp_reg_count, inst->GetType()); in HWTEST_F() 250 for (auto interval : intervals) { in HWTEST_F() 251 auto inst = interval->GetInst(); in HWTEST_F() 258 interval->SetPreassignedReg(preassign_count); in HWTEST_F() 298 for (auto interval in HWTEST_F() [all...] |
H A D | split_resolver_new_test.cpp | 85 auto interval = la.GetInstLifeIntervals(inst); in FindInstWithInterval() local 86 ASSERT(interval != nullptr); in FindInstWithInterval() 87 return {inst, interval}; in FindInstWithInterval() 96 auto interval = la.GetInstLifeIntervals(inst); in FindInstWithInterval() local 97 ASSERT(interval != nullptr); in FindInstWithInterval() 98 return {inst, interval}; in FindInstWithInterval()
|
/arkcompiler/runtime_core/static_core/compiler/tests/ |
H A D | life_intervals_test.cpp | 51 void CheckRanges(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckRanges() argument 53 ASSERT(interval != nullptr); in CheckRanges() 54 auto liRanges = interval->GetRanges(); in CheckRanges() 67 void CheckSiblingSequence(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckSiblingSequence() argument 70 for (auto sibling = interval; sibling != nullptr; sibling = sibling->GetSibling()) { in CheckSiblingSequence() 85 auto interval = Create({{0U, 4U}}); in TEST_F() local 86 auto split = interval->SplitAt(4U, GetAllocator()); in TEST_F() 88 CheckSiblings({interval, split}); in TEST_F() 89 CheckRanges(interval, {{0U, 4U}}); in TEST_F() 95 auto interval in TEST_F() local 105 auto interval = Create({{0U, 10U}}); TEST_F() local 115 auto interval = Create({{0U, 4U}, {6U, 10U}, {12U, 20U}}); TEST_F() local 125 auto interval = Create({{0U, 100U}}); TEST_F() local 139 auto interval = Create({{0U, 20U}, {22U, 40U}, {42U, 100U}}); TEST_F() local 154 auto interval = Create({{0U, 20U}, {22U, 40U}, {42U, 100U}}); TEST_F() local 167 auto interval = Create({{6U, 10U}}); TEST_F() local [all...] |
/arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/ |
H A D | reg_alloc_base.cpp | 151 void RegAllocBase::SetType(LifeIntervals *interval) in SetType() argument 154 if (interval->NoDest()) { in SetType() 155 ASSERT(interval->GetLocation().IsInvalid()); in SetType() 158 auto type = interval->GetInst()->GetType(); in SetType() 159 interval->SetType(ConvertRegType(GetGraph(), type)); in SetType() 162 void RegAllocBase::SetPreassignedRegisters(LifeIntervals *interval) in SetPreassignedRegisters() argument 164 auto inst = interval->GetInst(); in SetPreassignedRegisters() 166 interval->SetPreassignedReg(inst->GetDstReg()); in SetPreassignedRegisters() 171 interval->SetPreassignedReg(inst->GetDstLocation().GetValue()); in SetPreassignedRegisters() 180 interval in SetPreassignedRegisters() [all...] |
H A D | reg_alloc_graph_coloring.cpp | 57 // Current interval can intersect the physical one at the beginning of its live range in BuildIG() 58 // only if it's a call and physical interval's range was created for it. in BuildIG() 116 // Translate preassigned register from interval to color graph in PrecolorIG() 138 // Possible when general intervals are processing, while input is fp-interval or vice versa in PrecolorIG() 265 auto *interval = node.GetLifeIntervals(); in Remap() local 267 // Make interval's register in Remap() 271 interval->SetReg(reg); in Remap() 328 void AddRange(LifeIntervals *interval, InstructionsRanges *dest) in AddRange() argument 330 auto iter = std::upper_bound(dest->begin(), dest->end(), interval, in AddRange() 332 dest->insert(iter, interval); in AddRange() [all...] |
H A D | split_resolver.cpp | 26 for (auto interval : liveness_->GetLifeIntervals()) { in Run() 27 if (interval->GetSibling() == nullptr) { in Run() 30 ASSERT(!interval->IsPhysical()); in Run() 33 ConnectSiblings(interval); in Run() 44 void SplitResolver::ConnectSiblings(LifeIntervals *interval) in ConnectSiblings() argument 46 for (auto prev = interval, curr = interval->GetSibling(); curr != nullptr; prev = curr, curr = curr->GetSibling()) { in ConnectSiblings() 52 << "Connect siblings for inst v" << interval->GetInst()->GetId() << " at point: " << curr->GetBegin(); in ConnectSiblings() 70 for (auto interval : liveness_->GetLifeIntervals()) { in ProcessBlock() 71 // PHI and its inputs can be considered as one interval, whic in ProcessBlock() [all...] |
H A D | reg_alloc_base.h | 92 StackSlot GetNextStackSlot(LifeIntervals *interval) in GetNextStackSlot() argument 94 return !GetStackMask().AllSet() ? GetNextStackSlotImpl(interval) : INVALID_STACK_SLOT; in GetNextStackSlot() 97 StackSlot GetNextStackSlotImpl(LifeIntervals *interval) in GetNextStackSlotImpl() argument 105 if (stack_use_last_positions_[slot] > interval->GetBegin()) { in GetNextStackSlotImpl() 110 stack_use_last_positions_[slot] = interval->GetEnd(); in GetNextStackSlotImpl() 120 virtual void PrepareInterval([[maybe_unused]] LifeIntervals *interval) {} in PrepareInterval() argument 132 void SetType(LifeIntervals *interval); 133 void SetPreassignedRegisters(LifeIntervals *interval);
|
/arkcompiler/ets_runtime/ecmascript/dfx/cpu_profiler/tests/ |
H A D | cpu_profiler_test.cpp | 26 explicit CpuProfilerFriendTest(const EcmaVM *vm, const int interval) : cpu_profiler(vm, interval) {} in CpuProfilerFriendTest() argument 104 int interval = 1; in HWTEST_F_L0() local 106 CpuProfilerFriendTest cpuProfilerFriend(instance, interval); in HWTEST_F_L0() 118 int interval = 1; in HWTEST_F_L0() local 120 CpuProfilerFriendTest cpuProfilerFriend(instance, interval); in HWTEST_F_L0() 139 int interval = 1; in HWTEST_F_L0() local 141 CpuProfilerFriendTest cpuProfilerFriend(instance, interval); in HWTEST_F_L0() 159 uint32_t interval = 100; in HWTEST_F_L0() local 160 CpuProfilerFriendTest cpuProfilerFriend(instance, interval); in HWTEST_F_L0() 172 int interval = 500; HWTEST_F_L0() local [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | liveness_analyzer.cpp | 287 // If instruction required dst register, set use position in the beginning of the interval in SetUsePositions() 358 for (auto &interval : instLifeIntervals_) { in ProcessBlockLiveInstructions() 359 if (liveSet->IsSet(interval->GetInst()->GetLinearNumber())) { in ProcessBlockLiveInstructions() 360 interval->AppendRange(GetBlockLiveRange(block)); in ProcessBlockLiveInstructions() 368 auto interval = GetInstLifeIntervals(inst); in ProcessBlockLiveInstructions() local 369 interval->StartFrom(instLifeNumber); in ProcessBlockLiveInstructions() 376 interval->StartFrom(instLifeNumber); in ProcessBlockLiveInstructions() 380 ProcessOpcodeLiveOut(block, interval, instLifeNumber); in ProcessBlockLiveInstructions() 389 // The lifetime interval of phis instructions starts at the beginning of the block in ProcessBlockLiveInstructions() 399 for (auto &interval in ProcessBlockLiveInstructions() 408 ProcessOpcodeLiveOut(BasicBlock *block, LifeIntervals *interval, LifeNumber instLifeNumber) ProcessOpcodeLiveOut() argument 550 auto interval = GetAllocator()->New<LifeIntervals>(GetAllocator(), inst); CreateLifeIntervals() local 557 auto interval = GetAllocator()->New<LifeIntervals>(GetAllocator()); CreateIntervalForTemp() local 682 auto interval = GetInstLifeIntervals(inst); DumpLifeIntervals() local 823 auto interval = intervals.at(reg); BlockReg() local 991 CalcSpillWeight(const LivenessAnalyzer &la, LifeIntervals *interval) CalcSpillWeight() argument [all...] |
H A D | live_registers.h | 124 auto interval = *i; in VisitIntervals() local 125 if (interval->GetInst() == skipInst) { in VisitIntervals() 128 if (ln > interval->GetEnd()) { in VisitIntervals() 129 // intervals are ordered by its end in descending order, so we can stop on first interval in VisitIntervals() 133 if (interval->SplitCover<LIVE_INPUTS>(ln)) { in VisitIntervals() 134 func(interval); in VisitIntervals() 161 // (excluding the interval for that instruction).
|
/arkcompiler/runtime_core/compiler/optimizer/analysis/ |
H A D | liveness_analyzer.cpp | 298 for (auto &interval : inst_life_intervals_) { in ProcessBlockLiveInstructions() 299 if (live_set->IsSet(interval->GetInst()->GetLinearNumber())) { in ProcessBlockLiveInstructions() 300 interval->AppendRange(GetBlockLiveRange(block)); in ProcessBlockLiveInstructions() 308 auto interval = GetInstLifeIntervals(inst); in ProcessBlockLiveInstructions() local 309 interval->StartFrom(inst_life_number); in ProcessBlockLiveInstructions() 316 interval->StartFrom(inst_life_number); in ProcessBlockLiveInstructions() 324 // The lifetime interval of phis instructions starts at the beginning of the block in ProcessBlockLiveInstructions() 334 for (auto &interval : inst_life_intervals_) { in ProcessBlockLiveInstructions() 335 if (live_set->IsSet(interval->GetInst()->GetLinearNumber())) { in ProcessBlockLiveInstructions() 336 interval in ProcessBlockLiveInstructions() 476 auto interval = GetInstLifeIntervals(inst); DumpLifeIntervals() local 565 auto interval = intervals.at(reg); BlockReg() local [all...] |
/arkcompiler/toolchain/test/autotest/aw/cdp/ |
H A D | profiler.py | 25 interval: int
46 'params': {'interval': params.interval}
|
/arkcompiler/ets_runtime/ecmascript/dfx/cpu_profiler/ |
H A D | sampling_processor.h | 48 RunParams(SamplesRecord *generator, uint32_t interval, pthread_t tid, void *taskHandle)
in RunParams() 49 :generator_(generator), interval_(interval), tid_(tid), taskHandle_(taskHandle) {};
in RunParams()
|
/arkcompiler/runtime_core/static_core/verification/util/tests/ |
H A D | bit_vector_property_test.cpp | 202 RC_GTEST_PROP(TestBitvector, BasicTestClrFromTo, (BSet && bset, Interval &&interval)) 204 RC_PRE(interval.Finish() < bset.bits.Size()); 206 bset.bits.Clr(interval.Start(), interval.Finish()); 207 for (auto idx : interval) { 213 RC_GTEST_PROP(TestBitvector, BasicTestSetFromTo, (BSet && bset, Interval &&interval)) 215 RC_PRE(interval.Finish() < bset.bits.Size()); 217 bset.bits.Set(interval.Start(), interval.Finish()); 218 for (auto idx : interval) { [all...] |
/arkcompiler/runtime_core/static_core/runtime/tooling/ |
H A D | tools.cpp | 42 bool Tools::StartSamplingProfiler(const std::string &asptFilename, uint32_t interval) in StartSamplingProfiler() argument 45 sampler_->SetSampleInterval(interval); in StartSamplingProfiler()
|
/arkcompiler/ets_runtime/ecmascript/napi/include/ |
H A D | dfx_jsnapi.h | 119 int interval = 500); // 500:Default Sampling interval 500 microseconds 122 int interval = 500); // 500:Default Sampling interval 500 microseconds 131 int interval = 500; // 500:Default Sampling interval 500 microseconds member 137 static void SetCpuSamplingInterval(const EcmaVM *vm, int interval);
|