/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | LiveInterval.h | 53 class VNInfo { 64 VNInfo(unsigned i, SlotIndex d) : id(i), def(d) {} in VNInfo() function 67 VNInfo(unsigned i, const VNInfo &orig) : id(i), def(orig.def) {} in VNInfo() function 70 void copyFrom(VNInfo &src) { in copyFrom() 91 VNInfo *const EarlyVal; 92 VNInfo *const LateVal; 97 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult() 105 VNInfo *valueIn() const { in valueIn() 123 VNInfo *valueOut() const { in valueOut() 129 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() 204 bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx, 220 void markRematerialized(const VNInfo *ParentVNI) { in markRematerialized() 225 bool didRematerialize(const VNInfo *ParentVNI) const { in didRematerialize()
|
H A D | LiveRangeCalc.h | 50 VNInfo::Allocator *Alloc = nullptr; 54 using LiveOutPair = std::pair<VNInfo *, MachineDomTreeNode *>; 115 VNInfo *Value = nullptr; 170 VNInfo::Allocator *getVNAlloc() { return Alloc; } in getVNAlloc() 191 MachineDominatorTree *MDT, VNInfo::Allocator *VNIA); 229 void setLiveOutValue(MachineBasicBlock *MBB, VNInfo *VNI) { in setLiveOutValue()
|
H A D | LiveStacks.h | 40 VNInfo::Allocator VNInfoAllocator; 93 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator()
|
H A D | LiveIntervals.h | 67 VNInfo::Allocator VNInfoAllocator; 293 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator() 313 bool hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const; 483 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 *LiveRang [all...] |
H A D | SplitKit.cpp | 120 const VNInfo *VNI = CurLI.getVNInfoBefore(MBBEnd); in computeLastInsertPoint() 173 for (const VNInfo *VNI : CurLI->valnos) in analyzeUses() 430 void SplitEditor::addDeadDef(LiveInterval &LI, VNInfo *VNI, bool Original) { in addDeadDef() 443 VNInfo *PV = PS.getVNInfoAt(Def); in addDeadDef() 471 VNInfo *SplitEditor::defValue(unsigned RegIdx, in defValue() 472 const VNInfo *ParentVNI, in defValue() 481 VNInfo *VNI = LI->getNextValue(Idx, LIS.getVNInfoAllocator()); in defValue() 495 if (VNInfo *OldVNI = InsP.first->second.getPointer()) { in defValue() 508 void SplitEditor::forceRecompute(unsigned RegIdx, const VNInfo &ParentVNI) { in forceRecompute() 510 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); 384 VNInfo *defFromParent(unsigned RegIdx, const VNInfo *ParentVNI, 390 void removeBackCopies(SmallVectorImpl<VNInfo*> &Copies); 399 SmallVectorImpl<VNInfo *> [all...] |
H A D | LiveIntervalCalc.cpp | 30 static VNInfo UndefVNI(0xbad, SlotIndex()); 32 static void createDeadDef(SlotIndexes &Indexes, VNInfo::Allocator &Alloc, 45 VNInfo::Allocator *Alloc = getVNAlloc(); in calculate() 112 VNInfo::Allocator *Alloc = getVNAlloc(); in constructMainRangeFromSubranges() 114 for (const VNInfo *VNI : SR.valnos) { in constructMainRangeFromSubranges() 126 VNInfo::Allocator *Alloc = getVNAlloc(); in createDeadDefs()
|
H A D | InlineSpiller.cpp | 103 MapVector<std::pair<int, VNInfo *>, SmallPtrSet<MachineInstr *, 16>>; 111 bool isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI, 126 void runHoistSpills(LiveInterval &OrigLI, VNInfo &OrigVNI, 176 SmallPtrSet<VNInfo*, 8> UsedValues; 212 void eliminateRedundantSpills(LiveInterval &LI, VNInfo *VNI); 214 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 | RegisterCoalescer.cpp | 281 VNInfo *AValNo, VNInfo *BValNo); 644 VNInfo *BValNo = BS->valno; in adjustCopiesBackFrom() 656 VNInfo *AValNo = AS->valno; in adjustCopiesBackFrom() 715 VNInfo *SubBValNo = S.getVNInfoAt(CopyIdx); in adjustCopiesBackFrom() 717 VNInfo *SubValSNo = S.getVNInfoAt(AValNo->def.getPrevSlot()); in adjustCopiesBackFrom() 755 VNInfo *AValNo, in hasOtherReachingDefs() 756 VNInfo *BValNo) { in hasOtherReachingDefs() 782 addSegmentsWithValNo(LiveRange &Dst, VNInfo *DstValNo, const LiveRange &Src, in addSegmentsWithValNo() 783 const VNInfo *SrcValNo) { in addSegmentsWithValNo() 837 VNInfo *BValNo = IntB.getVNInfoAt(CopyIdx); in removeCopyByCommutingDef() [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() 325 VNInfo *OrigVNI = OrigLI.getVNInfoAt(Idx); in eliminateDeadDef() 401 VNInfo::Allocator &Alloc = LIS.getVNInfoAllocator(); in eliminateDeadDef() 402 VNInfo *VNI = NewLI.getNextValue(Idx, Alloc); in eliminateDeadDef()
|
H A D | LiveIntervals.cpp | 364 VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator()); in computeLiveInRegUnits() 380 for (VNInfo *VNI : VNIs) { in createSegmentsForValues() 392 SmallPtrSet<VNInfo*, 8> UsedPHIs; in extendSegmentsToUses() 415 VNInfo *VNI = WorkList.back().second; in extendSegmentsToUses() 421 if (VNInfo *ExtVNI = Segments.extendInBlock(BlockStart, Idx)) { in extendSegmentsToUses() 434 if (VNInfo *PVNI = OldRange.getVNInfoBefore(Stop)) in extendSegmentsToUses() 449 if (VNInfo *OldVNI = OldRange.getVNInfoBefore(Stop)) { in extendSegmentsToUses() 494 VNInfo *VNI = LRQ.valueIn(); in shrinkToUses() 507 if (VNInfo *DefVNI = LRQ.valueDefined()) in shrinkToUses() 531 for (VNInfo *VNI : LI.valnos) { in computeDeadValues() [all …]
|
H A D | LiveRangeCalc.cpp | 39 static VNInfo UndefVNI(0xbad, SlotIndex()); 52 VNInfo::Allocator *VNIA) { in reset() 103 // VNInfo SSA form. Perform a search for all predecessor blocks where we in extend() 104 // know the dominating VNInfo. in extend() 201 VNInfo *TheVNI = nullptr; in findReachingDefs() 239 if (VNInfo *VNI = Map[Pred].first) { in findReachingDefs() 253 VNInfo *VNI = EP.first; in findReachingDefs() 400 assert(Alloc && "Need VNInfo allocator to create PHI-defs"); in updateSSA() 404 VNInfo *VNI = LR.getNextValue(Start, *Alloc); in updateSSA()
|
H A D | RenameIndependentSubregs.cpp | 192 const VNInfo *VNI = SR.getVNInfoAt(Pos); in findComponents() 234 const VNInfo *VNI = SR.getVNInfoAt(Pos); in rewriteOperands() 280 const VNInfo &VNI = *SR.valnos[I]; in distribute() 319 const VNInfo &VNI = *SR.valnos[I]; in computeMainRangesFixFlags() 340 VNInfo *SRVNI = SR.getNextValue(RegDefIdx, Allocator); in computeMainRangesFixFlags()
|
H A D | PHIElimination.cpp | 469 VNInfo *IncomingVNI = IncomingLI.getVNInfoAt(MBBStartIndex); in LowerPHINode() 495 VNInfo *OrigDestVNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 507 VNInfo *VNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 516 VNInfo *DestVNI = LR->getVNInfoAt(NewStart); in LowerPHINode() 675 VNInfo *VNI = SrcLI.getVNInfoAt(startIdx); in LowerPHINode()
|
H A D | LiveRangeUtils.h | 47 VNInfo *VNI = LR.getValNumInfo(i); in DistributeRange()
|
H A D | LiveDebugVariables.cpp | 446 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> 962 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> in extendDef() 1027 SmallVector<std::pair<LiveInterval *, const VNInfo *>, 4>> in addDefsFromCopies() 1056 const VNInfo *DstVNI = DstLI->getVNInfoAt(Idx.getRegSlot()); in addDefsFromCopies() 1082 const VNInfo *DstVNI = LIAndVNI.second; in addDefsFromCopies() 1117 SmallDenseMap<unsigned, std::pair<LiveRange *, const VNInfo *>> LIs; in computeIntervals() 1118 SmallVector<const VNInfo *, 4> VNIs; in computeIntervals() 1128 const VNInfo *VNI = nullptr; in computeIntervals()
|
H A D | TwoAddressInstructionPass.cpp | 1632 VNInfo *VNI = LI.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator()); in processTiedPairs() 1641 VNInfo *VNI = in processTiedPairs() 1797 VNInfo::Allocator &A = LIS->getVNInfoAllocator(); in processStatepoint() 1800 SmallVector<VNInfo *> NewVNIs; in processStatepoint() 1801 for (const VNInfo *VNI : Other.valnos) { in processStatepoint() 1806 VNInfo *VNI = NewVNIs[S.valno->id]; in processStatepoint() 1989 VNInfo *DefVN = nullptr; in eliminateRegSequence()
|
H A D | StackColoring.cpp | 418 VNInfo::Allocator VNInfoAllocator; 868 VNInfo *VNI = Intervals[Slot]->getValNumInfo(0); in calculateLiveIntervals() 884 VNInfo *VNI = Intervals[i]->getValNumInfo(0); in calculateLiveIntervals()
|
/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 | 273 if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore( in getVRegDef() 292 const VNInfo *DefVNI = in hasOneNonDBGUse() 444 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst)); in oneUseDominatesOtherUses() 451 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst)); in oneUseDominatesOtherUses() 664 VNInfo *ValNo = LI.getVNInfoAt(DefIdx); in moveAndTeeForMultiUse()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVInsertVSETVLI.cpp | 49 static VNInfo *getVNInfoFromReg(Register Reg, const MachineInstr &MI, in getVNInfoFromReg() 516 const VNInfo *ValNo; 554 void setAVLRegDef(const VNInfo *VNInfo, Register AVLReg) { in setAVLRegDef() argument 556 AVLRegDef.ValNo = VNInfo; in setAVLRegDef() 579 const VNInfo *getAVLVNInfo() const { in getAVLVNInfo() 975 VNInfo *VNI = getVNInfoFromReg(AVLReg, MI, LIS); in getInfoForVSETVLI() 1054 VNInfo *VNI = getVNInfoFromReg(VLOp.getReg(), MI, LIS); in computeInfoForInstr() 1277 VNInfo *VNI = LI.getVNInfoAt(SI); in transferAfter() 1375 const VNInfo *Valno = Require.getAVLVNInfo(); in needVSETVLIPHI() 1385 const VNInfo *Value = LR.getVNInfoBefore(LIS->getMBBEndIdx(PBB)); in needVSETVLIPHI() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCVSXFMAMutate.cpp | 111 VNInfo *AddendValNo = in processBlock() 282 VNInfo *FMAValNo = FMAInt.getVNInfoAt(FMAIdx.getRegSlot()); in processBlock() 305 VNInfo *NewFMAValNo = in processBlock()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | SIWholeQuadMode.cpp | 321 const VNInfo *Value = UseLRQ.valueIn(); in markDefs() 336 const VNInfo *Phi; in markDefs() 340 PhiEntry(const VNInfo *Phi, unsigned PredIdx, LaneBitmask DefinedLanes) in markDefs() 343 using VisitKey = std::pair<const VNInfo *, LaneBitmask>; in markDefs() 349 const VNInfo *NextValue = nullptr; in markDefs() 367 if (const VNInfo *VN = LR.getVNInfoBefore(LIS->getMBBEndIdx(*PI))) { in markDefs() 404 if (const VNInfo *VN = LRQ.valueIn()) { in markDefs() 458 const VNInfo *Value = LR.Query(LIS->getInstructionIndex(MI)).valueIn(); in markOperand()
|