Home
last modified time | relevance | path

Searched refs:interval (Results 1 - 25 of 56) sorted by relevance

123

/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/regalloc/
H A Dreg_alloc_linear_scan.cpp26 /// 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 Dreg_alloc_graph_coloring.cpp95 // 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 Dreg_alloc_linear_scan.h40 * 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 Dsplit_resolver.cpp28 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 Dreg_alloc_base.cpp168 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 Dreg_alloc_base.h27 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 Dworking_ranges.h35 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 Dreg_alloc_resolver.cpp135 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 Dlife_intervals_test.cpp49 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 Dreg_alloc_graph_coloring_new_test.cpp110 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 Dsplit_resolver_new_test.cpp85 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 Dlife_intervals_test.cpp51 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 Dreg_alloc_base.cpp151 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 Dreg_alloc_graph_coloring.cpp57 // 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 Dsplit_resolver.cpp26 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 Dreg_alloc_base.h92 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 Dcpu_profiler_test.cpp26 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 Dliveness_analyzer.cpp287 // 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 Dlive_registers.h124 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 Dliveness_analyzer.cpp298 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 Dprofiler.py25 interval: int
46 'params': {'interval': params.interval}
/arkcompiler/ets_runtime/ecmascript/dfx/cpu_profiler/
H A Dsampling_processor.h48 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 Dbit_vector_property_test.cpp202 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 Dtools.cpp42 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 Ddfx_jsnapi.h119 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);

Completed in 13 milliseconds

123