LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::IntEqClasses Class Reference

#include "llvm/ADT/IntEqClasses.h"

Public Member Functions

 IntEqClasses (unsigned N=0)
 IntEqClasses - Create an equivalence class mapping for 0 .. N-1. More...
 
void grow (unsigned N)
 grow - Increase capacity to hold 0 . More...
 
void clear ()
 clear - Clear all classes so that grow() will assign a unique class to every integer. More...
 
unsigned join (unsigned a, unsigned b)
 Join the equivalence classes of a and b. More...
 
unsigned findLeader (unsigned a) const
 findLeader - Compute the leader of a's equivalence class. More...
 
void compress ()
 compress - Compress equivalence classes by numbering them 0 . More...
 
unsigned getNumClasses () const
 getNumClasses - Return the number of equivalence classes after compress() was called. More...
 
unsigned operator[] (unsigned a) const
 operator[] - Return a's equivalence class number, 0 . More...
 
void uncompress ()
 uncompress - Change back to the uncompressed representation that allows editing. More...
 

Detailed Description

Definition at line 28 of file IntEqClasses.h.

Constructor & Destructor Documentation

◆ IntEqClasses()

llvm::IntEqClasses::IntEqClasses ( unsigned  N = 0)
inline

IntEqClasses - Create an equivalence class mapping for 0 .. N-1.

Definition at line 42 of file IntEqClasses.h.

References grow(), and N.

Member Function Documentation

◆ clear()

void llvm::IntEqClasses::clear ( )
inline

clear - Clear all classes so that grow() will assign a unique class to every integer.

Definition at line 51 of file IntEqClasses.h.

References llvm::SmallVectorImpl< T >::clear(), compress(), findLeader(), and join().

◆ compress()

void IntEqClasses::compress ( )

compress - Compress equivalence classes by numbering them 0 .

. M. This makes the equivalence class map immutable.

Definition at line 60 of file IntEqClasses.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by clear(), and llvm::SchedDFSImpl::finalize().

◆ findLeader()

unsigned IntEqClasses::findLeader ( unsigned  a) const

findLeader - Compute the leader of a's equivalence class.

This is the smallest member of the class. This requires an uncompressed map.

Definition at line 53 of file IntEqClasses.cpp.

References assert().

Referenced by clear().

◆ getNumClasses()

unsigned llvm::IntEqClasses::getNumClasses ( ) const
inline

getNumClasses - Return the number of equivalence classes after compress() was called.

Definition at line 72 of file IntEqClasses.h.

Referenced by llvm::SchedDFSImpl::finalize(), and llvm::EdgeBundles::getNumBundles().

◆ grow()

void IntEqClasses::grow ( unsigned  N)

grow - Increase capacity to hold 0 .

. N-1, putting new integers in unique equivalence classes. This requires an uncompressed map.

Definition at line 25 of file IntEqClasses.cpp.

References assert(), N, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by IntEqClasses().

◆ join()

unsigned IntEqClasses::join ( unsigned  a,
unsigned  b 
)

Join the equivalence classes of a and b.

After joining classes, findLeader(a) == findLeader(b). This requires an uncompressed map. Returns the new leader.

Definition at line 32 of file IntEqClasses.cpp.

References assert().

Referenced by clear(), and llvm::SchedDFSImpl::joinPredSubtree().

◆ operator[]()

unsigned llvm::IntEqClasses::operator[] ( unsigned  a) const
inline

operator[] - Return a's equivalence class number, 0 .

. getNumClasses()-1. This requires a compressed map.

Definition at line 76 of file IntEqClasses.h.

References assert(), and uncompress().

◆ uncompress()

void IntEqClasses::uncompress ( )

uncompress - Change back to the uncompressed representation that allows editing.

Definition at line 67 of file IntEqClasses.cpp.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by operator[]().


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