| /freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
| H A D | LiveInterval.h | 54 class VNInfo { 65 VNInfo(unsigned i, SlotIndex d) : id(i), def(d) {} in VNInfo() function 68 VNInfo(unsigned i, const VNInfo &orig) : id(i), def(orig.def) {} in VNInfo() function 71 void copyFrom(VNInfo &src) { in copyFrom() 92 VNInfo *const EarlyVal; 93 VNInfo *const LateVal; 98 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult() 106 VNInfo *valueIn() const { in valueIn() 124 VNInfo *valueOut() const { in valueOut() 130 VNInfo *valueOutOrDead() const { in valueOutOrDead() [all …]
|
| H A D | LiveRangeEdit.h | 87 SmallPtrSet<const VNInfo *, 4> Remattable; 91 SmallPtrSet<const VNInfo *, 4> Rematted; 185 bool checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI); 189 const VNInfo *const ParentVNI; // parent_'s value at the remat location. 193 explicit Remat(const VNInfo *ParentVNI) : ParentVNI(ParentVNI) {} in Remat() 203 bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx); 218 void markRematerialized(const VNInfo *ParentVNI) { in markRematerialized() 223 bool didRematerialize(const VNInfo *ParentVNI) const { in didRematerialize()
|
| H A D | LiveRangeCalc.h | 51 VNInfo::Allocator *Alloc = nullptr; 55 using LiveOutPair = std::pair<VNInfo *, MachineDomTreeNode *>; 116 VNInfo *Value = nullptr; 171 VNInfo::Allocator *getVNAlloc() { return Alloc; } in getVNAlloc() 192 MachineDominatorTree *MDT, VNInfo::Allocator *VNIA); 230 void setLiveOutValue(MachineBasicBlock *MBB, VNInfo *VNI) { in setLiveOutValue()
|
| H A D | LiveStacks.h | 41 VNInfo::Allocator VNInfoAllocator; 88 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator()
|
| H A D | LiveIntervals.h | 68 VNInfo::Allocator VNInfoAllocator; 303 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator() 323 LLVM_ABI bool hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const; 495 using ShrinkToUsesWorkList = SmallVector<std::pair<SlotIndex, VNInfo *>, 16>;
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | LiveInterval.cpp | 87 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator *VNInfoAllocator, in createDeadDef() 88 VNInfo *ForVNI) { in createDeadDef() 94 VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator); in createDeadDef() 115 VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator); in createDeadDef() 120 VNInfo *extendInBlock(SlotIndex StartIdx, SlotIndex Use) { in extendInBlock() 135 std::pair<VNInfo*,bool> extendInBlock(ArrayRef<SlotIndex> Undefs, in extendInBlock() 161 VNInfo *ValNo = I->valno; in extendSegmentEndTo() 189 VNInfo *ValNo = I->valno; in extendSegmentStartTo() 355 VNInfo *LiveRange::createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc) { in createDeadDef() 363 VNInfo *LiveRange::createDeadDef(VNInfo *VNI) { in createDeadDef() [all …]
|
| H A D | SplitKit.cpp | 119 const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd); in computeLastInsertPoint() 172 for (const VNInfo *VNI : CurLI->valnos) in analyzeUses() 429 void SplitEditor::addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original) { in addDeadDef() 442 VNInfo *PV = PS.getVNInfoAt(Def); in addDeadDef() 470 VNInfo *SplitEditor::defValue(unsigned RegIdx, in defValue() 471 const VNInfo *ParentVNI, in defValue() 480 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator()); in defValue() 494 if (VNInfo *OldVNI = InsP.first->second.getPointer()) { in defValue() 507 void SplitEditor::forceRecompute(unsigned RegIdx, const VNInfo &ParentVNI) { in forceRecompute() 509 VNInfo *VNI = VFP.getPointer(); in forceRecompute() [all …]
|
| H A D | SplitKit.h | 324 using ValueForcePair = PointerIntPair<VNInfo *, 1>; 359 void addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original); 369 VNInfo *defValue(unsigned RegIdx, const VNInfo *ParentVNI, SlotIndex Idx, 376 void forceRecompute(unsigned RegIdx, const VNInfo &ParentVNI); 380 void forceRecomputeVNI(const VNInfo &ParentVNI); 390 VNInfo *defFromParent(unsigned RegIdx, const VNInfo *ParentVNI, 396 void removeBackCopies(SmallVectorImpl<VNInfo*> &Copies); 405 SmallVectorImpl<VNInfo *> &BackCopies);
|
| H A D | LiveIntervalCalc.cpp | 29 static VNInfo UndefVNI(0xbad, SlotIndex()); 31 static void createDeadDef(SlotIndexes &Indexes, VNInfo::Allocator &Alloc, in createDeadDef() 44 VNInfo::Allocator *Alloc = getVNAlloc(); in calculate() 111 VNInfo::Allocator *Alloc = getVNAlloc(); in constructMainRangeFromSubranges() 113 for (const VNInfo *VNI : SR.valnos) { in constructMainRangeFromSubranges() 125 VNInfo::Allocator *Alloc = getVNAlloc(); in createDeadDefs()
|
| H A D | RegisterCoalescer.cpp | 281 VNInfo *AValNo, VNInfo *BValNo); 653 VNInfo *BValNo = BS->valno; in adjustCopiesBackFrom() 667 VNInfo *AValNo = AS->valno; in adjustCopiesBackFrom() 727 VNInfo *SubBValNo = S.getVNInfoAt(CopyIdx); in adjustCopiesBackFrom() 729 VNInfo *SubValSNo = S.getVNInfoAt(AValNo->def.getPrevSlot()); in adjustCopiesBackFrom() 766 LiveInterval &IntB, VNInfo *AValNo, in hasOtherReachingDefs() 767 VNInfo *BValNo) { in hasOtherReachingDefs() 794 VNInfo *DstValNo, in addSegmentsWithValNo() 796 const VNInfo *SrcValNo) { in addSegmentsWithValNo() 850 VNInfo *BValNo = IntB.getVNInfoAt(CopyIdx); in removeCopyByCommutingDef() [all …]
|
| H A D | InlineSpiller.cpp | 102 MapVector<std::pair<int, VNInfo *>, SmallPtrSet<MachineInstr *, 16>>; 110 bool isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI, 125 void runHoistSpills(LiveInterval &OrigLI, VNInfo &OrigVNI, 175 SmallPtrSet<VNInfo*, 8> UsedValues; 209 void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI); 211 void markValueUsed(LiveInterval*, VNInfo*); 437 VNInfo *VNI = SpillLI.getVNInfoAt(Idx.getRegSlot()); in hoistSpillInsideBB() 443 VNInfo *SrcVNI = SrcLI.getVNInfoAt(Idx); in hoistSpillInsideBB() 454 VNInfo *OrigVNI = OrigLI.getVNInfoAt(Idx); in hoistSpillInsideBB() 494 void InlineSpiller::eliminateRedundantSpills(LiveInterval &SLI, VNInfo *VNI) { in eliminateRedundantSpills() [all …]
|
| H A D | LiveRangeEdit.cpp | 48 VNInfo::Allocator &Alloc = LIS.getVNInfoAllocator(); in createEmptyIntervalFrom() 71 bool LiveRangeEdit::checkRematerializable(VNInfo *VNI, in checkRematerializable() 82 for (VNInfo *VNI : getParent().valnos) { in scanRemattable() 87 VNInfo *OrigVNI = OrigLI.getVNInfoAt(VNI->def); in scanRemattable() 124 const VNInfo *OVNI = li.getVNInfoAt(OrigIdx); in allUsesAvailableAt() 158 bool LiveRangeEdit::canRematerializeAt(Remat &RM, VNInfo *OrigVNI, in canRematerializeAt() 321 VNInfo *OrigVNI = OrigLI.getVNInfoAt(Idx); in eliminateDeadDef() 398 VNInfo::Allocator &Alloc = LIS.getVNInfoAllocator(); in eliminateDeadDef() 399 VNInfo *VNI = NewLI.getNextValue(Idx, Alloc); in eliminateDeadDef()
|
| H A D | LiveIntervals.cpp | 380 VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator()); in computeLiveInRegUnits() 396 for (VNInfo *VNI : VNIs) { in createSegmentsForValues() 408 SmallPtrSet<VNInfo*, 8> UsedPHIs; in extendSegmentsToUses() 431 VNInfo *VNI = WorkList.back().second; in extendSegmentsToUses() 437 if (VNInfo *ExtVNI = Segments.extendInBlock(BlockStart, Idx)) { in extendSegmentsToUses() 450 if (VNInfo *PVNI = OldRange.getVNInfoBefore(Stop)) in extendSegmentsToUses() 465 if (VNInfo *OldVNI = OldRange.getVNInfoBefore(Stop)) { in extendSegmentsToUses() 510 VNInfo *VNI = LRQ.valueIn(); in shrinkToUses() 523 if (VNInfo *DefVNI = LRQ.valueDefined()) in shrinkToUses() 547 for (VNInfo *VNI : LI.valnos) { in computeDeadValues() [all …]
|
| H A D | LiveRangeCalc.cpp | 38 static VNInfo UndefVNI(0xbad, SlotIndex()); 51 VNInfo::Allocator *VNIA) { in reset() 200 VNInfo *TheVNI = nullptr; in findReachingDefs() 238 if (VNInfo *VNI = Map[Pred].first) { in findReachingDefs() 252 VNInfo *VNI = EP.first; in findReachingDefs() 403 VNInfo *VNI = LR.getNextValue(Start, *Alloc); in updateSSA()
|
| H A D | RenameIndependentSubregs.cpp | 198 const VNInfo *VNI = SR.getVNInfoAt(Pos); in findComponents() 240 const VNInfo *VNI = SR.getVNInfoAt(Pos); in rewriteOperands() 286 const VNInfo &VNI = *SR.valnos[I]; in distribute() 325 const VNInfo &VNI = *SR.valnos[I]; in computeMainRangesFixFlags() 346 VNInfo *SRVNI = SR.getNextValue(RegDefIdx, Allocator); in computeMainRangesFixFlags()
|
| H A D | PHIElimination.cpp | 477 VNInfo *IncomingVNI = IncomingLI.getVNInfoAt(MBBStartIndex); in LowerPHINode() 503 VNInfo *OrigDestVNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 515 VNInfo *VNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 524 VNInfo *DestVNI = LR->getVNInfoAt(NewStart); in LowerPHINode() 683 VNInfo *VNI = SrcLI.getVNInfoAt(startIdx); in LowerPHINode()
|
| H A D | LiveRangeUtils.h | 47 VNInfo *VNI = LR.getValNumInfo(i); in DistributeRange()
|
| H A D | LiveRegMatrix.cpp | 221 VNInfo valno(0, Start); in checkInterference() 252 VNInfo valno(0, Start); in checkInterferenceLanes()
|
| H A D | LiveDebugVariables.cpp | 450 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> 974 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> in extendDef() 1039 SmallVector<std::pair<LiveInterval *, const VNInfo *>, 4>> in addDefsFromCopies() 1068 const VNInfo *DstVNI = DstLI->getVNInfoAt(Idx.getRegSlot()); in addDefsFromCopies() 1094 const VNInfo *DstVNI = LIAndVNI.second; in addDefsFromCopies() 1129 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> LIs; in computeIntervals() 1139 const VNInfo *VNI = nullptr; in computeIntervals()
|
| H A D | TwoAddressInstructionPass.cpp | 1634 VNInfo *VNI = LI.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator()); in processTiedPairs() 1643 VNInfo *VNI = in processTiedPairs() 1799 VNInfo::Allocator &A = LIS->getVNInfoAllocator(); in processStatepoint() 1802 SmallVector<VNInfo *> NewVNIs; in processStatepoint() 1803 for (const VNInfo *VNI : Other.valnos) { in processStatepoint() 1808 VNInfo *VNI = NewVNIs[S.valno->id]; in processStatepoint() 1990 VNInfo *DefVN = nullptr; in eliminateRegSequence()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/ |
| H A D | WebAssemblyMemIntrinsicResults.cpp | 95 VNInfo *FromVNI = FromLI->getVNInfoAt(FromIdx); in replaceDominatedUses() 109 VNInfo *WhereVNI = FromLI->getVNInfoAt(WhereIdx); in replaceDominatedUses() 114 VNInfo *ToVNI = ToLI->getVNInfoAt(WhereIdx); in replaceDominatedUses()
|
| H A D | WebAssemblyRegStackify.cpp | 278 if (const VNInfo *ValNo = LIS->getInterval(Reg).getVNInfoBefore(InstIndex)) in getVRegDef() 312 const VNInfo *DefVNI = in hasSingleUse() 470 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst)); in oneUseDominatesOtherUses() 477 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst)); in oneUseDominatesOtherUses() 693 VNInfo *ValNo = LI.getVNInfoAt(DefIdx); in moveAndTeeForMultiUse()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
| H A D | RISCVInsertVSETVLI.cpp | 55 static VNInfo *getVNInfoFromReg(Register Reg, const MachineInstr &MI, in getVNInfoFromReg() 487 const VNInfo *ValNo; 525 void setAVLRegDef(const VNInfo *VNInfo, Register AVLReg) { in setAVLRegDef() argument 527 AVLRegDef.ValNo = VNInfo; in setAVLRegDef() 550 const VNInfo *getAVLVNInfo() const { in getAVLVNInfo() 954 VNInfo *VNI = getVNInfoFromReg(AVLReg, MI, LIS); in getInfoForVSETVLI() 1029 VNInfo *VNI = getVNInfoFromReg(VLOp.getReg(), MI, LIS); in computeInfoForInstr() 1125 const VNInfo *CurVNI = Info.getAVLVNInfo(); in insertVSETVLI() 1267 VNInfo *VNI = LI.getVNInfoAt(SI); in transferAfter() 1367 const VNInfo *Valno = Require.getAVLVNInfo(); in needVSETVLIPHI() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
| H A D | PPCVSXFMAMutate.cpp | 103 VNInfo *AddendValNo = in processBlock() 274 VNInfo *FMAValNo = FMAInt.getVNInfoAt(FMAIdx.getRegSlot()); in processBlock()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | SIWholeQuadMode.cpp | 332 const VNInfo *Value = UseLRQ.valueIn(); in markDefs() 347 const VNInfo *Phi; in markDefs() 351 PhiEntry(const VNInfo *Phi, unsigned PredIdx, LaneBitmask DefinedLanes) in markDefs() 354 using VisitKey = std::pair<const VNInfo *, LaneBitmask>; in markDefs() 360 const VNInfo *NextValue = nullptr; in markDefs() 378 if (const VNInfo *VN = LR.getVNInfoBefore(LIS->getMBBEndIdx(*PI))) { in markDefs() 415 if (const VNInfo *VN = LRQ.valueIn()) { in markDefs() 469 const VNInfo *Value = LR.Query(LIS->getInstructionIndex(MI)).valueIn(); in markOperand()
|