/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | LiveInterval.h | 53 class VNInfo { 67 VNInfo(unsigned i, const VNInfo &orig) : id(i), def(orig.def) {} in VNInfo() function 97 LiveQueryResult(VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, in LiveQueryResult() 331 VNInfo *getNextValue(SlotIndex Def, VNInfo::Allocator &VNInfoAllocator) { in getNextValue() 332 VNInfo *VNI = in getNextValue() 341 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc); 345 VNInfo *createDeadDef(VNInfo *VNI); 349 VNInfo *createValueCopy(const VNInfo *orig, in createValueCopy() 351 VNInfo *VNI = in createValueCopy() 365 VNInfo* MergeValueNumberInto(VNInfo *V1, VNInfo *V2); [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 | LiveIntervals.h | 63 VNInfo::Allocator VNInfoAllocator; 285 VNInfo::Allocator& getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator() 302 bool hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const; 475 using ShrinkToUsesWorkList = SmallVector<std::pair<SlotIndex, VNInfo*>, 16>;
|
H A D | LiveStacks.h | 40 VNInfo::Allocator VNInfoAllocator; 93 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | LiveInterval.cpp | 87 VNInfo *createDeadDef(SlotIndex Def, VNInfo::Allocator *VNInfoAllocator, in createDeadDef() 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() 520 VNInfo *VNI = S.valno; in RenumberValues() 579 VNInfo *ValNo = I->valno; in removeSegment() 607 VNInfo *ValNo = I->valno; in removeSegment() 738 VNInfo *LiveRange::MergeValueNumberInto(VNInfo *V1, VNInfo *V2) { in MergeValueNumberInto() 1015 const VNInfo *vni = *i; in print() [all …]
|
H A D | SplitKit.cpp | 173 for (const VNInfo *VNI : CurLI->valnos) in analyzeUses() 444 VNInfo *PV = PS.getVNInfoAt(Def); in addDeadDef() 511 VNInfo *VNI = VFP.getPointer(); in forceRecompute() 593 VNInfo *SplitEditor::defFromParent(unsigned RegIdx, const VNInfo *ParentVNI, in defFromParent() 861 for (const VNInfo *C : Copies) { in removeBackCopies() 969 for (VNInfo *VNI : LI->valnos) { in computeRedundantBackCopies() 1031 for (VNInfo *VNI : LI->valnos) { in hoistCopies() 1114 SmallVector<VNInfo*, 8> BackCopies; in hoistCopies() 1115 for (VNInfo *VNI : LI->valnos) { in hoistCopies() 1142 VNInfo *ParentVNI = S.valno; in transferValues() [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 *> &BackCopies);
|
H A D | LiveIntervalCalc.cpp | 30 static VNInfo UndefVNI(0xbad, SlotIndex()); 32 static void createDeadDef(SlotIndexes &Indexes, VNInfo::Allocator &Alloc, in createDeadDef() 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 | 113 bool isSpillCandBB(LiveInterval &OrigLI, VNInfo &OrigVNI, 177 SmallPtrSet<VNInfo*, 8> UsedValues; 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() 647 VNInfo *OrigVNI = OrigLI.getVNInfoAt(UseIdx); in reMaterializeFor() 741 for (VNInfo *VNI : LI.vnis()) { in reMaterializeAll() 1364 VNInfo *VNI = LI.getVNInfoAt(Idx); in isSpillCandBB() 1492 LiveInterval &OrigLI, VNInfo &OrigVNI, in runHoistSpills() [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() 2484 VNInfo *RedefVNI = nullptr; 2487 VNInfo *OtherVNI = nullptr; 2539 std::pair<const VNInfo *, Register> followCopyChain(const VNInfo *VNI) const; 2541 bool valuesIdentical(VNInfo *Value0, VNInfo *Value1, const JoinVals &Other) const; 2678 const VNInfo *ValueIn; in followCopyChain() 2716 bool JoinVals::valuesIdentical(VNInfo *Value0, VNInfo *Value1, in valuesIdentical() 2718 const VNInfo *Orig0; in valuesIdentical() [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 | 355 for (VNInfo *VNI : VNIs) { in createSegmentsForValues() 367 SmallPtrSet<VNInfo*, 8> UsedPHIs; in extendSegmentsToUses() 469 VNInfo *VNI = LRQ.valueIn(); in shrinkToUses() 506 for (VNInfo *VNI : LI.valnos) { in computeDeadValues() 573 VNInfo *VNI = LRQ.valueIn(); in shrinkToUses() 596 for (VNInfo *VNI : SR.valnos) { in shrinkToUses() 627 VNInfo *VNI = LRQ.valueOutOrDead(); in pruneValue() 837 for (const VNInfo *PHI : LI.valnos) { in hasPHIKill() 866 VNInfo *VN = Interval.getNextValue( in addSegmentToEndOfBlock() 1172 VNInfo *DefVNI; in handleMoveDown() [all …]
|
H A D | LiveRangeCalc.cpp | 39 static VNInfo UndefVNI(0xbad, SlotIndex()); 52 VNInfo::Allocator *VNIA) { in reset() 201 VNInfo *TheVNI = nullptr; in findReachingDefs() 239 if (VNInfo *VNI = Map[Pred].first) { in findReachingDefs() 253 VNInfo *VNI = EP.first; in findReachingDefs() 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() 338 VNInfo *SRVNI = SR.getNextValue(RegDefIdx, Allocator); in computeMainRangesFixFlags()
|
H A D | PHIElimination.cpp | 393 VNInfo *IncomingVNI = IncomingLI.getVNInfoAt(MBBStartIndex); in LowerPHINode() 420 VNInfo *OrigDestVNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 432 VNInfo *VNI = LR->getVNInfoAt(DestSegment->start); in LowerPHINode() 441 VNInfo *DestVNI = LR->getVNInfoAt(NewStart); in LowerPHINode() 597 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 | 1557 VNInfo *VNI = LI.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator()); in processTiedPairs() 1566 VNInfo *VNI = in processTiedPairs() 1722 VNInfo::Allocator &A = LIS->getVNInfoAllocator(); in processStatepoint() 1725 SmallVector<VNInfo *> NewVNIs; in processStatepoint() 1726 for (const VNInfo *VNI : Other.valnos) { in processStatepoint() 1731 VNInfo *VNI = NewVNIs[S.valno->id]; in processStatepoint()
|
H A D | StackColoring.cpp | 418 VNInfo::Allocator VNInfoAllocator; 864 VNInfo *VNI = Intervals[Slot]->getValNumInfo(0); in calculateLiveIntervals() 880 VNInfo *VNI = Intervals[i]->getValNumInfo(0); in calculateLiveIntervals()
|
H A D | LiveRegMatrix.cpp | 213 VNInfo valno(0, Start); in checkInterference()
|
/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 | 272 if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore( in getVRegDef() 291 const VNInfo *DefVNI = in hasOneNonDBGUse() 443 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst)); in oneUseDominatesOtherUses() 450 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst)); in oneUseDominatesOtherUses() 661 VNInfo *ValNo = LI.getVNInfoAt(DefIdx); in moveAndTeeForMultiUse()
|
/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 | 320 const VNInfo *Value = UseLRQ.valueIn(); in markDefs() 335 const VNInfo *Phi; in markDefs() 339 PhiEntry(const VNInfo *Phi, unsigned PredIdx, LaneBitmask DefinedLanes) in markDefs() 342 using VisitKey = std::pair<const VNInfo *, LaneBitmask>; in markDefs() 348 const VNInfo *NextValue = nullptr; in markDefs() 366 if (const VNInfo *VN = LR.getVNInfoBefore(LIS->getMBBEndIdx(*PI))) { in markDefs() 403 if (const VNInfo *VN = LRQ.valueIn()) { in markDefs() 457 const VNInfo *Value = LR.Query(LIS->getInstructionIndex(MI)).valueIn(); in markOperand()
|