LLVM 22.0.0git
llvm::ConnectedVNInfoEqClasses Class Reference

ConnectedVNInfoEqClasses - Helper class that can divide VNInfos in a LiveInterval into equivalence clases of connected components. More...

#include "llvm/CodeGen/LiveInterval.h"

Public Member Functions

 ConnectedVNInfoEqClasses (LiveIntervals &lis)
LLVM_ABI unsigned Classify (const LiveRange &LR)
 Classify the values in LR into connected components.
unsigned getEqClass (const VNInfo *VNI) const
 getEqClass - Classify creates equivalence classes numbered 0..N.
LLVM_ABI void Distribute (LiveInterval &LI, LiveInterval *LIV[], MachineRegisterInfo &MRI)
 Distribute values in LI into a separate LiveIntervals for each connected component.

Detailed Description

ConnectedVNInfoEqClasses - Helper class that can divide VNInfos in a LiveInterval into equivalence clases of connected components.

A LiveInterval that has multiple connected components can be broken into multiple LiveIntervals.

Given a LiveInterval that may have multiple connected components, run:

unsigned numComps = ConEQ.Classify(LI); if (numComps > 1) { // allocate numComps-1 new LiveIntervals into LIS[1..] ConEQ.Distribute(LIS); }

Definition at line 1011 of file LiveInterval.h.

Constructor & Destructor Documentation

◆ ConnectedVNInfoEqClasses()

llvm::ConnectedVNInfoEqClasses::ConnectedVNInfoEqClasses ( LiveIntervals & lis)
inlineexplicit

Definition at line 1016 of file LiveInterval.h.

Member Function Documentation

◆ Classify()

unsigned ConnectedVNInfoEqClasses::Classify ( const LiveRange & LR)

Classify the values in LR into connected components.

Returns the number of connected components.

Definition at line 1329 of file LiveInterval.cpp.

References assert(), llvm::VNInfo::def, llvm::LiveRange::getNumValNums(), llvm::LiveRange::getVNInfoBefore(), llvm::VNInfo::id, llvm::VNInfo::isPHIDef(), llvm::VNInfo::isUnused(), MBB, and llvm::LiveRange::valnos.

Referenced by llvm::LiveIntervals::splitSeparateComponents().

◆ Distribute()

◆ getEqClass()

unsigned llvm::ConnectedVNInfoEqClasses::getEqClass ( const VNInfo * VNI) const
inline

getEqClass - Classify creates equivalence classes numbered 0..N.

Return the equivalence class assigned the VNI.

Definition at line 1024 of file LiveInterval.h.

References llvm::VNInfo::id.

Referenced by Distribute().


The documentation for this class was generated from the following files: