Lines Matching defs:Def
215 /// mapping def to reachable uses or use to definitions.
309 // Treat ADRP def as use, as the goal of the analysis is to find
389 /// Reaching def core algorithm:
441 /// def algorithm.
442 /// \param ADRPMode specify whether the reaching def algorithm should be tuned
488 DEBUG(dbgs() << "Def:\n");
499 /// Answer the following question: Can Def be one of the definition
501 static bool canDefBePartOfLOH(const MachineInstr *Def) {
502 unsigned Opc = Def->getOpcode();
511 switch (Def->getOperand(2).getType()) {
522 switch (Def->getOperand(2).getType()) {
578 const MachineInstr *Def = DefsIt.first;
582 if ((ADRPMode && Def->getOpcode() != AArch64::ADRP) ||
583 (!ADRPMode && !canDefBePartOfLOH(Def)) ||
693 /// \pre UseToDefs contains only on def per use, i.e., obvious non candidate are
701 const MachineInstr *Def = *UseToDefs.find(Instr)->second.begin();
702 if (Def->getOpcode() != AArch64::ADRP) {
703 // At this point, Def is ADDXri or LDRXui of the right type of
709 if (!MDT->dominates(Def, Instr))
712 if (UseToDefs.find(Def) ==
716 UseToDefs.find(Def)->second.empty())
718 Instr = Def;
719 Def = *UseToDefs.find(Def)->second.begin();
725 if (Def->getOpcode() == AArch64::ADRP)
726 return MDT->dominates(Def, Instr);
747 const MachineInstr &Def = **It->second.begin();
748 if (Def.getOpcode() != AArch64::ADRP)
753 RegToId.find(Def.getOperand(0).getReg())->second, Def);
759 assert((!InvolvedInLOHs || InvolvedInLOHs->insert(&Def)) &&
763 DEBUG(dbgs() << "Record AdrpAdd\n" << Def << '\n' << Use << '\n');
767 {&Def, &Use});
827 const MachineInstr *Def
829 const MachineInstr *L1 = Def;
831 unsigned ImmediateDefOpc = Def->getOpcode();
832 if (Def->getOpcode() != AArch64::ADRP) {
836 RegToId.find(Def->getOperand(0).getReg())->second, *Def);
839 // if all the uses of this def are in potential candidate, this is
852 PotentialADROpportunities.insert(Def);
855 L2 = Def;
856 Def = *UseToDefs.find(Def)->second.begin();
857 L1 = Def;
859 // Def already contains the first element of the chain.
864 RegToId.find(Def->getOperand(0).getReg())->second, *Def);
867 // if all the uses of this def are in the defs of the potential candidate,
1068 // Compute the reaching def in ADRP mode, meaning ADRP definitions
1086 // first perform a regular reaching def analysis.