Home
last modified time | relevance | path

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

12

/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DLiveInterval.h54 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 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()
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 DLiveRangeCalc.h51 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 DLiveStacks.h41 VNInfo::Allocator VNInfoAllocator;
88 VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } in getVNInfoAllocator()
H A DLiveIntervals.h68 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 DLiveInterval.cpp87 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 DSplitKit.cpp119 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 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);
390 VNInfo *defFromParent(unsigned RegIdx, const VNInfo *ParentVNI,
396 void removeBackCopies(SmallVectorImpl<VNInfo*> &Copies);
405 SmallVectorImpl<VNInfo *> &BackCopies);
H A DLiveIntervalCalc.cpp29 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 DRegisterCoalescer.cpp281 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 DInlineSpiller.cpp102 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 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()
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 DLiveIntervals.cpp380 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 DLiveRangeCalc.cpp38 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 DRenameIndependentSubregs.cpp198 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 DPHIElimination.cpp477 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 DLiveRangeUtils.h47 VNInfo *VNI = LR.getValNumInfo(i); in DistributeRange()
H A DLiveRegMatrix.cpp221 VNInfo valno(0, Start); in checkInterference()
252 VNInfo valno(0, Start); in checkInterferenceLanes()
H A DLiveDebugVariables.cpp450 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 DTwoAddressInstructionPass.cpp1634 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 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.cpp278 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 DRISCVInsertVSETVLI.cpp55 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 DPPCVSXFMAMutate.cpp103 VNInfo *AddendValNo = in processBlock()
274 VNInfo *FMAValNo = FMAInt.getVNInfoAt(FMAIdx.getRegSlot()); in processBlock()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DSIWholeQuadMode.cpp332 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()

12