Lines Matching refs:Chain
106 class Chain;
137 bool colorChainSet(std::vector<Chain*> GV, MachineBasicBlock &MBB,
139 bool colorChain(Chain *G, Color C, MachineBasicBlock &MBB);
140 int scavengeRegister(Chain *G, Color C, MachineBasicBlock &MBB);
142 std::map<unsigned, Chain*> &Active,
143 std::vector<std::unique_ptr<Chain>> &AllChains);
145 std::map<unsigned, Chain*> &RegChains);
147 Chain *getAndEraseNext(Color PreferredColor, std::vector<Chain*> &L);
159 /// A Chain is a sequence of instructions that are linked together by
184 class Chain {
202 Chain(MachineInstr *MI, unsigned Idx, Color C)
216 "Chain: broken invariant. A Chain can only be killed after its last "
237 "Chain: broken invariant. A Chain can only be killed after its last "
265 bool rangeOverlapsWith(const Chain &Other) const {
274 bool startsBefore(const Chain *Other) const {
339 std::map<unsigned, Chain*> ActiveChains;
340 std::vector<std::unique_ptr<Chain>> AllChains;
355 EquivalenceClasses<Chain*> EC;
369 std::vector<std::vector<Chain*> > V;
371 std::vector<Chain*> Cs(EC.member_begin(I), EC.member_end());
379 [](const std::vector<Chain *> &A, const std::vector<Chain *> &B) {
402 Chain *AArch64A57FPLoadBalancing::getAndEraseNext(Color PreferredColor,
403 std::vector<Chain*> &L) {
420 Chain *Ch = *--I;
426 Chain *Ch = *I;
433 Chain *Ch = L.front();
438 bool AArch64A57FPLoadBalancing::colorChainSet(std::vector<Chain*> GV,
453 llvm::sort(GV, [](const Chain *G1, const Chain *G2) {
465 while (Chain *G = getAndEraseNext(PreferredColor, GV)) {
495 int AArch64A57FPLoadBalancing::scavengeRegister(Chain *G, Color C,
510 assert(ChainBegin != ChainEnd && "Chain should contain instructions");
529 bool AArch64A57FPLoadBalancing::colorChain(Chain *G, Color C,
600 MachineInstr *MI, unsigned Idx, std::map<unsigned, Chain *> &ActiveChains,
601 std::vector<std::unique_ptr<Chain>> &AllChains) {
618 auto G = std::make_unique<Chain>(MI, Idx, getColor(DestReg));
635 LLVM_DEBUG(dbgs() << "Chain found for accumulator register "
663 auto G = std::make_unique<Chain>(MI, Idx, getColor(DestReg));
681 std::map<unsigned, Chain*> &ActiveChains) {