Home
last modified time | relevance | path

Searched refs:LifeIntervals (Results 1 - 25 of 42) sorted by relevance

12

/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/regalloc/
H A Dreg_alloc_linear_scan.h29 class LifeIntervals;
31 using InstructionsIntervals = ArenaList<LifeIntervals *>;
68 ArenaVector<LifeIntervals *> fixed; // NOLINT(misc-non-private-member-variables-in-classes)
77 ArenaVector<LifeIntervals *> fixed; // NOLINT(misc-non-private-member-variables-in-classes)
100 void PrepareInterval(LifeIntervals *interval) override;
124 bool TryToAssignRegister(LifeIntervals *currentInterval);
126 void SplitAndSpill(const InstructionsIntervals *intervals, const LifeIntervals *currentInterval);
128 void SplitActiveInterval(LifeIntervals *interval, LifeNumber splitPos);
130 void AddToQueue(LifeIntervals *interval);
132 void SplitBeforeUse(LifeIntervals *currentInterva
[all...]
H A Dreg_alloc_base.h26 void ConnectIntervals(SpillFillInst *spillFill, const LifeIntervals *src, const LifeIntervals *dst);
27 bool TryToSpillConstant(LifeIntervals *interval, Graph *graph);
93 StackSlot GetNextStackSlot(LifeIntervals *interval) in GetNextStackSlot()
98 StackSlot GetNextStackSlotImpl(LifeIntervals *interval) in GetNextStackSlotImpl()
122 virtual void PrepareInterval([[maybe_unused]] LifeIntervals *interval) {} in PrepareInterval()
134 void SetType(LifeIntervals *interval);
135 void SetPreassignedRegisters(LifeIntervals *interval);
H A Dreg_alloc_linear_scan.cpp27 static void AddInterval(LifeIntervals *interval, InstructionsIntervals *dest) in AddInterval()
29 auto cmp = [](LifeIntervals *lhs, LifeIntervals *rhs) { return lhs->GetBegin() >= rhs->GetBegin(); }; in AddInterval()
90 void RegAllocLinearScan::PrepareInterval(LifeIntervals *interval) in PrepareInterval()
236 bool RegAllocLinearScan::TryToAssignRegister(LifeIntervals *currentInterval) in TryToAssignRegister()
266 void RegAllocLinearScan::SplitAndSpill(const InstructionsIntervals *intervals, const LifeIntervals *currentInterval) in SplitAndSpill()
287 void RegAllocLinearScan::SplitActiveInterval(LifeIntervals *interval, LifeNumber splitPos) in SplitActiveInterval()
310 void RegAllocLinearScan::AddToQueue(LifeIntervals *interval) in AddToQueue()
316 Register RegAllocLinearScan::GetSuitableRegister(const LifeIntervals *currentInterval) in GetSuitableRegister()
335 Register RegAllocLinearScan::GetFreeRegister(const LifeIntervals *currentInterva
[all...]
H A Dsplit_resolver.h36 void ConnectSiblings(LifeIntervals *interval);
40 void ConnectSplitFromPredBlock(BasicBlock *srcBb, LifeIntervals *srcInterval, BasicBlock *targetBb,
41 LifeIntervals *targetSplit);
H A Dworking_ranges.h23 using InstructionsRanges = ArenaDeque<LifeIntervals *>;
35 static inline void AddRange(LifeIntervals *interval, InstructionsRanges *dest) in AddRange()
H A Dreg_alloc_graph_coloring.h64 void AddAffinityEdge(InterferenceGraph *ig, IndexVector *affinityNodes, const ColorNode &node, LifeIntervals *li);
73 void SpillInterval(LifeIntervals *interval, WorkingRanges *ranges, WorkingRanges *stackRanges);
H A Dinterference_graph.h33 class LifeIntervals;
77 void Assign(LifeIntervals *lifeIntervals) noexcept
103 LifeIntervals *GetLifeIntervals() const noexcept
129 LifeIntervals *lifeIntervals_ = nullptr;
221 const ColorNode *FindNode(const LifeIntervals *li) const in FindNode()
H A Dreg_alloc_base.cpp168 void RegAllocBase::SetType(LifeIntervals *interval) in SetType()
179 void RegAllocBase::SetPreassignedRegisters(LifeIntervals *interval) in SetPreassignedRegisters()
271 void ConnectIntervals(SpillFillInst *spillFill, const LifeIntervals *src, const LifeIntervals *dst) in ConnectIntervals()
281 bool TryToSpillConstant(LifeIntervals *interval, Graph *graph) in TryToSpillConstant()
H A Dsplit_resolver.cpp46 void SplitResolver::ConnectSiblings(LifeIntervals *interval) in ConnectSiblings()
105 void SplitResolver::ConnectSplitFromPredBlock(BasicBlock *srcBb, LifeIntervals *srcInterval, BasicBlock *targetBb, in ConnectSplitFromPredBlock()
106 LifeIntervals *targetSplit) in ConnectSplitFromPredBlock()
H A Dreg_alloc_stat.h24 explicit RegAllocStat(const ArenaVector<LifeIntervals *> &intervals);
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/
H A Dliveness_analyzer.h88 class LifeIntervals { class
90 explicit LifeIntervals(ArenaAllocator *allocator) : LifeIntervals(allocator, nullptr) {} in LifeIntervals() function in ark::compiler::LifeIntervals
92 LifeIntervals(ArenaAllocator *allocator, Inst *inst) : LifeIntervals(allocator, inst, {}) {} in LifeIntervals() function in ark::compiler::LifeIntervals
94 LifeIntervals(ArenaAllocator *allocator, Inst *inst, LiveRange liveRange) in LifeIntervals() function in ark::compiler::LifeIntervals
112 DEFAULT_MOVE_SEMANTIC(LifeIntervals);
113 DEFAULT_COPY_SEMANTIC(LifeIntervals);
114 ~LifeIntervals() = default;
396 LifeIntervals *SplitA
[all...]
H A Dlive_registers.cpp39 std::pair<LifeNumber, LifeNumber> CopyIntervals(const ArenaVector<LifeIntervals *> &source,
40 ArenaVector<LifeIntervals *> *destination)
93 LifeIntervalsTree *LifeIntervalsTree::BuildIntervalsTree(const ArenaVector<LifeIntervals *> &lifeIntervals, in BuildIntervalsTree()
98 auto intervals = alloc->New<ArenaVector<LifeIntervals *>>(alloc->Adapter()); in BuildIntervalsTree()
132 [](LifeIntervals *l, LifeIntervals *r) { return l->GetEnd() > r->GetEnd(); }); in BuildIntervalsTree()
H A Dliveness_analyzer.cpp408 void LivenessAnalyzer::ProcessOpcodeLiveOut(BasicBlock *block, LifeIntervals *interval, LifeNumber instLifeNumber) in ProcessOpcodeLiveOut()
550 auto interval = GetAllocator()->New<LifeIntervals>(GetAllocator(), inst); in CreateLifeIntervals()
557 auto interval = GetAllocator()->New<LifeIntervals>(GetAllocator()); in CreateIntervalForTemp()
565 LifeIntervals *LivenessAnalyzer::GetInstLifeIntervals(const Inst *inst) const in GetInstLifeIntervals()
621 const ArenaVector<LifeIntervals *> &LivenessAnalyzer::GetLifeIntervals() const in GetLifeIntervals()
646 LifeIntervals *LivenessAnalyzer::GetTmpRegInterval(const Inst *inst) in GetTmpRegInterval()
703 std::map<Register, std::vector<LifeIntervals *>> regsIntervals; in DumpLocationsUsage()
704 std::map<Register, std::vector<LifeIntervals *>> vregsIntervals; in DumpLocationsUsage()
705 std::map<Register, std::vector<LifeIntervals *>> slotsIntervals; in DumpLocationsUsage()
825 interval = GetGraph()->GetAllocator()->New<LifeIntervals>(GetGrap in BlockReg()
[all...]
/arkcompiler/runtime_core/static_core/compiler/tests/
H A Dlive_registers_test.cpp27 auto intervals = ArenaVector<LifeIntervals *>(GetGraph()->GetAllocator()->Adapter()); in TEST_F()
34 auto intervals = ArenaVector<LifeIntervals *>(alloc->Adapter()); in TEST_F()
35 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(0U, 42U))); in TEST_F()
42 auto intervals = ArenaVector<LifeIntervals *>(alloc->Adapter()); in TEST_F()
43 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(0U, 10U))); in TEST_F()
44 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(0U, 2U))); in TEST_F()
45 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(2U, 3U))); in TEST_F()
46 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(5U, 6U))); in TEST_F()
47 intervals.push_back(alloc->New<LifeIntervals>(alloc, GetGraph()->CreateInstAdd(), LiveRange(6U, 8U))); in TEST_F()
48 intervals.push_back(alloc->New<LifeIntervals>(allo in TEST_F()
[all...]
H A Dlife_intervals_test.cpp25 LifeIntervals *Create(std::initializer_list<std::pair<LifeNumber, LifeNumber>> lns) in Create()
28 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), inst); in Create()
36 void CheckSiblings(std::initializer_list<LifeIntervals *> intervals) in CheckSiblings()
51 void CheckRanges(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckRanges()
67 void CheckSiblingSequence(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckSiblingSequence()
77 std::vector<std::function<LifeIntervals *()>> IsSameLocationFactories(Graph *graph);
179 std::vector<std::function<LifeIntervals *()>> LifeIntervalsTest::IsSameLocationFactories(Graph *graph) in IsSameLocationFactories()
185 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in IsSameLocationFactories()
190 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in IsSameLocationFactories()
195 auto li = GetAllocator()->New<LifeIntervals>(GetAllocato in IsSameLocationFactories()
[all...]
/arkcompiler/runtime_core/compiler/optimizer/analysis/
H A Dliveness_analyzer.h87 class LifeIntervals { class
89 explicit LifeIntervals(ArenaAllocator *allocator) : LifeIntervals(allocator, nullptr) {} in LifeIntervals() function in panda::compiler::LifeIntervals
91 LifeIntervals(ArenaAllocator *allocator, Inst *inst) : LifeIntervals(allocator, inst, {}) {} in LifeIntervals() function in panda::compiler::LifeIntervals
93 LifeIntervals(ArenaAllocator *allocator, Inst *inst, LiveRange live_range) in LifeIntervals() function in panda::compiler::LifeIntervals
108 DEFAULT_MOVE_SEMANTIC(LifeIntervals);
109 DEFAULT_COPY_SEMANTIC(LifeIntervals);
110 ~LifeIntervals() = default;
369 LifeIntervals *SplitA
[all...]
H A Dliveness_analyzer.cpp434 inst_life_intervals_.push_back(GetAllocator()->New<LifeIntervals>(GetAllocator(), inst)); in CreateLifeIntervals()
437 LifeIntervals *LivenessAnalyzer::GetInstLifeIntervals(const Inst *inst) const in GetInstLifeIntervals()
491 std::map<Register, std::vector<LifeIntervals *>> regs_intervals; in DumpLocationsUsage()
492 std::map<Register, std::vector<LifeIntervals *>> vregs_intervals; in DumpLocationsUsage()
493 std::map<Register, std::vector<LifeIntervals *>> slots_intervals; in DumpLocationsUsage()
567 interval = GetGraph()->GetAllocator()->New<LifeIntervals>(GetGraph()->GetAllocator()); in BlockReg()
587 LifeIntervals *LifeIntervals::SplitAt(LifeNumber ln, ArenaAllocator *alloc) in SplitAt()
591 auto split_child = alloc->New<LifeIntervals>(alloc, GetInst()); in SplitAt()
624 void LifeIntervals
[all...]
/arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/
H A Dreg_alloc_base.h26 void ConnectIntervals(SpillFillInst *spill_fill, const LifeIntervals *src, const LifeIntervals *dst);
92 StackSlot GetNextStackSlot(LifeIntervals *interval) in GetNextStackSlot()
97 StackSlot GetNextStackSlotImpl(LifeIntervals *interval) in GetNextStackSlotImpl()
120 virtual void PrepareInterval([[maybe_unused]] LifeIntervals *interval) {} in PrepareInterval()
132 void SetType(LifeIntervals *interval);
133 void SetPreassignedRegisters(LifeIntervals *interval);
H A Dsplit_resolver.h36 void ConnectSiblings(LifeIntervals *interval);
40 void ConnectSpiltFromPredBlock(BasicBlock *src_bb, LifeIntervals *src_interval, BasicBlock *target_bb,
41 LifeIntervals *target_split);
H A Dreg_alloc_base.cpp151 void RegAllocBase::SetType(LifeIntervals *interval) in SetType()
162 void RegAllocBase::SetPreassignedRegisters(LifeIntervals *interval) in SetPreassignedRegisters()
246 void ConnectIntervals(SpillFillInst *spill_fill, const LifeIntervals *src, const LifeIntervals *dst) in ConnectIntervals()
H A Dreg_alloc_stat.h24 explicit RegAllocStat(const ArenaVector<LifeIntervals *> &intervals);
H A Dinterference_graph.h31 class LifeIntervals;
73 void Assign(LifeIntervals *life_intervals) noexcept
95 LifeIntervals *GetLifeIntervals() const noexcept
111 LifeIntervals *life_intervals_ = nullptr;
H A Dsplit_resolver.cpp44 void SplitResolver::ConnectSiblings(LifeIntervals *interval) in ConnectSiblings()
103 void SplitResolver::ConnectSpiltFromPredBlock(BasicBlock *src_bb, LifeIntervals *src_interval, BasicBlock *target_bb, in ConnectSpiltFromPredBlock()
104 LifeIntervals *target_split) in ConnectSpiltFromPredBlock()
/arkcompiler/runtime_core/compiler/tests/
H A Dlife_intervals_test.cpp24 LifeIntervals *Create(std::initializer_list<std::pair<LifeNumber, LifeNumber>> lns) in Create()
27 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), inst); in Create()
34 void CheckSiblings(std::initializer_list<LifeIntervals *> intervals) in CheckSiblings()
49 void CheckRanges(LifeIntervals *interval, std::initializer_list<std::pair<LifeNumber, LifeNumber>> ranges) in CheckRanges()
184 std::vector<std::function<LifeIntervals *()>> factories = { in TEST_F()
186 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in TEST_F()
191 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in TEST_F()
196 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in TEST_F()
201 auto li = GetAllocator()->New<LifeIntervals>(GetAllocator(), add); in TEST_F()
206 auto li = GetAllocator()->New<LifeIntervals>(GetAllocato in TEST_F()
[all...]
H A Dliveness_analyzer_new_test.cpp264 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
274 LifeIntervals life_intervals1(graph->GetAllocator(), bb->GetFirstInst(), live_range1); in HWTEST_F()
301 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
333 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
365 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
393 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
423 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
425 LifeIntervals other(graph->GetAllocator()); in HWTEST_F()
453 LifeIntervals life_intervals(graph->GetAllocator(), bb->GetFirstInst(), live_range); in HWTEST_F()
455 LifeIntervals othe in HWTEST_F()
[all...]

Completed in 12 milliseconds

12