LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::AllocationOrder Class Reference

#include <AllocationOrder.h>

Public Member Functions

 AllocationOrder (unsigned VirtReg, const VirtRegMap &VRM, const RegisterClassInfo &RegClassInfo)
 
ArrayRef< MCPhysReggetOrder () const
 Get the allocation order without reordered hints. More...
 
unsigned next ()
 
unsigned nextWithDups (unsigned Limit)
 
void rewind ()
 Start over from the beginning. More...
 
bool isHint () const
 Return true if the last register returned from next() was a preferred register. More...
 
bool isHint (unsigned PhysReg) const
 Return true if PhysReg is a preferred register. More...
 

Detailed Description

Definition at line 28 of file AllocationOrder.h.

Constructor & Destructor Documentation

AllocationOrder::AllocationOrder ( unsigned  VirtReg,
const VirtRegMap VRM,
const RegisterClassInfo RegClassInfo 
)

Member Function Documentation

ArrayRef<MCPhysReg> llvm::AllocationOrder::getOrder ( ) const
inline

Get the allocation order without reordered hints.

Definition at line 43 of file AllocationOrder.h.

bool llvm::AllocationOrder::isHint ( ) const
inline

Return true if the last register returned from next() was a preferred register.

Definition at line 75 of file AllocationOrder.h.

Referenced by next().

bool llvm::AllocationOrder::isHint ( unsigned  PhysReg) const
inline

Return true if PhysReg is a preferred register.

Definition at line 78 of file AllocationOrder.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().

unsigned llvm::AllocationOrder::next ( )
inline

Return the next physical register in the allocation order, or 0. It is safe to call next() again after it returned 0, it will keep returning 0 until rewind() is called.

Definition at line 48 of file AllocationOrder.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end(), isHint(), and llvm::ArrayRef< T >::size().

unsigned llvm::AllocationOrder::nextWithDups ( unsigned  Limit)
inline

As next(), but allow duplicates to be returned, and stop before the Limit'th register in the RegisterClassInfo allocation order.

This can produce more than Limit registers if there are hints.

Definition at line 63 of file AllocationOrder.h.

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

void llvm::AllocationOrder::rewind ( )
inline

Start over from the beginning.

Definition at line 72 of file AllocationOrder.h.

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

Referenced by AllocationOrder().


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