LLVM
8.0.1
|
#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... | |
Definition at line 28 of file IntEqClasses.h.
|
inline |
IntEqClasses - Create an equivalence class mapping for 0 .. N-1.
Definition at line 42 of file IntEqClasses.h.
|
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().
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::SmallVectorBase::size().
Referenced by clear(), and llvm::SchedDFSImpl::finalize().
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().
|
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().
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, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::SmallVectorBase::size().
Referenced by IntEqClasses().
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[] - 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().
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, bool >::push_back(), and llvm::SmallVectorBase::size().
Referenced by operator[]().