Home
last modified time | relevance | path

Searched refs:VNInfo (Results 1 – 25 of 32) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DLiveInterval.h53 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 DLiveRangeEdit.h87 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 DLiveRangeCalc.h50 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 DLiveIntervals.h63 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 DLiveStacks.h40 VNInfo::Allocator VNInfoAllocator;
93 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DLiveInterval.cpp87 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 DSplitKit.cpp173 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 DSplitKit.h324 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 DLiveIntervalCalc.cpp30 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 DInlineSpiller.cpp113 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 DRegisterCoalescer.cpp281 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 DLiveRangeEdit.cpp48 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 DLiveIntervals.cpp355 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 DLiveRangeCalc.cpp39 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 DRenameIndependentSubregs.cpp192 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 DPHIElimination.cpp393 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 DLiveRangeUtils.h47 VNInfo *VNI = LR.getValNumInfo(i); in DistributeRange()
H A DLiveDebugVariables.cpp446 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 DTwoAddressInstructionPass.cpp1557 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 DStackColoring.cpp418 VNInfo::Allocator VNInfoAllocator;
864 VNInfo *VNI = Intervals[Slot]->getValNumInfo(0); in calculateLiveIntervals()
880 VNInfo *VNI = Intervals[i]->getValNumInfo(0); in calculateLiveIntervals()
H A DLiveRegMatrix.cpp213 VNInfo valno(0, Start); in checkInterference()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyMemIntrinsicResults.cpp95 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 DWebAssemblyRegStackify.cpp272 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 DPPCVSXFMAMutate.cpp111 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 DSIWholeQuadMode.cpp320 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()

12