class ConnectedVNInfoEqClasses

Declaration

class ConnectedVNInfoEqClasses { /* full declaration omitted */ };

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); }

Declared at: llvm/include/llvm/CodeGen/LiveInterval.h:991

Method Overview

  • public unsigned int Classify(const llvm::LiveRange & LR)
  • public ConnectedVNInfoEqClasses(llvm::LiveIntervals & lis)
  • public void Distribute(llvm::LiveInterval & LI, llvm::LiveInterval ** LIV, llvm::MachineRegisterInfo & MRI)
  • public unsigned int getEqClass(const llvm::VNInfo * VNI) const

Methods

unsigned int Classify(const llvm::LiveRange& LR)

Description

Classify the values in \p LR into connected components. Returns the number of connected components.

Declared at: llvm/include/llvm/CodeGen/LiveInterval.h:1000

Parameters

const llvm::LiveRange& LR

ConnectedVNInfoEqClasses(llvm::LiveIntervals& lis)

Declared at: llvm/include/llvm/CodeGen/LiveInterval.h:996

Parameters

llvm::LiveIntervals& lis

void Distribute(llvm::LiveInterval& LI,
                llvm::LiveInterval** LIV,
                llvm::MachineRegisterInfo& MRI)

Description

Distribute values in \p LI into a separate LiveIntervals for each connected component. LIV must have an empty LiveInterval for each additional connected component. The first connected component is left in \p LI.

Declared at: llvm/include/llvm/CodeGen/LiveInterval.h:1010

Parameters

llvm::LiveInterval& LI
llvm::LiveInterval** LIV
llvm::MachineRegisterInfo& MRI

unsigned int getEqClass(
    const llvm::VNInfo* VNI) const

Description

getEqClass - Classify creates equivalence classes numbered 0..N. Return the equivalence class assigned the VNI.

Declared at: llvm/include/llvm/CodeGen/LiveInterval.h:1004

Parameters

const llvm::VNInfo* VNI